1. C++ / Говнокод #17112

    +51

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    DWORD getDirectoryIndex()
    	{
    		STATIC_OBJECT_ATTRIBUTES(oa, "\\");
    		HANDLE hFile;
    		DWORD ObjectTypeIndex = 0;
    
    		if (0 <= ZwOpenDirectoryObject(&hFile, DIRECTORY_QUERY, &oa))
    		{
    			NTSTATUS status;
    			PVOID buf = 0, stack = alloca(guz);
    			DWORD cb = 0, rcb = 0x10000;
    
    			do 
    			{
    				if (cb < rcb) cb = RtlPointerToOffset(buf = alloca(rcb - cb), stack);
    
    				if (0 <= (status = ZwQuerySystemInformation(SystemExtendedHanfleInformation, buf, cb, &rcb)))
    				{
    					PSYSTEM_HANDLE_INFORMATION_EX pshti = (PSYSTEM_HANDLE_INFORMATION_EX)buf;
    
    					if (ULONG NumberOfHandles = (ULONG)pshti->NumberOfHandles)
    					{
    						PSYSTEM_HANDLE_TABLE_ENTRY_INFO_EX Handles = pshti->Handles;
    
    						ULONG_PTR UniqueProcessId = GetCurrentProcessId();
    						do 
    						{
    							if (Handles->UniqueProcessId == UniqueProcessId && Handles->HandleValue == (ULONG_PTR)hFile)
    							{
    								ObjectTypeIndex = Handles->ObjectTypeIndex;
    								break;
    							}
    
    						} while (Handles++, --NumberOfHandles);
    					}
    				}
    			} while (STATUS_INFO_LENGTH_MISMATCH == status);
    
    			ZwClose(hFile);
    		}
    
    		return ObjectTypeIndex;
    	}
    
    	ZOBJECT_ALL_TYPES_INFORMATION()
    	{
    		_TypeInformation = 0, _NumberOfTypes = 0;
    
    		if (DWORD DirectoryTypeIndex = getDirectoryIndex())
    		{
    			PVOID stack = alloca(guz);
    			OBJECT_ALL_TYPES_INFORMATION* poati = 0;
    			DWORD cb = 0, rcb = 0x2000;
    			NTSTATUS status;
    			do 
    			{
    				if (cb < rcb)
    				{
    					cb = RtlPointerToOffset(poati = (OBJECT_ALL_TYPES_INFORMATION*)alloca(rcb - cb), stack);
    				}
    
    				if (0 <= (status = ZwQueryObject(0, ObjectAllTypeInformation, poati, cb, &rcb)))
    				{
    					if (DWORD NumberOfTypes = poati->NumberOfTypes)
    					{
    						if (OBJECT_TYPE_INFORMATION* TypeInformation = (OBJECT_TYPE_INFORMATION*)LocalAlloc(0, rcb))
    						{
    							_NumberOfTypes = NumberOfTypes;
    							_TypeInformation = TypeInformation;
    
    							STATIC_UNICODE_STRING_(Directory);
    							OBJECT_TYPE_INFORMATION* pti = poati->TypeInformation;
    							PWSTR buf = (PWSTR)(TypeInformation + NumberOfTypes);
    							int Index = 0;
    							do 
    							{
    								if (RtlEqualUnicodeString(&Directory, &pti->TypeName, TRUE))
    								{
    									_firstObjectTypeIndex = DirectoryTypeIndex - Index;
    								}
    
    								DWORD Length = pti->TypeName.Length, MaximumLength = pti->TypeName.MaximumLength;
    								memcpy(buf, pti->TypeName.Buffer, Length);
    
    								*TypeInformation = *pti;
    								TypeInformation++->TypeName.Buffer = buf;
    
    								buf = (PWSTR)RtlOffsetToPointer(buf, Length);
    
    								pti = (OBJECT_TYPE_INFORMATION*)
    									(((ULONG_PTR)pti + sizeof(OBJECT_TYPE_INFORMATION) + MaximumLength + sizeof(PVOID)-1) & ~(sizeof(PVOID)-1));
    
    							} while (Index++, --NumberOfTypes);
    						}
    					}
    				}
    			} while (status == STATUS_INFO_LENGTH_MISMATCH);
    		}
    	}

    ObjectTypeIndex

    zhukas, 15 Ноября 2014

    Комментарии (32)
  2. JavaScript / Говнокод #17111

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    var list = [ ];
    
    // hidden elements
    list[ NaN ] = 'this-element-always-is-last'; // max index
    list[ Number.MAX_VALUE ] = 'this-is-smallest';
    list[ Infinity ] = 'this-just-infinity';
    
    // list.length == 0; // true

    Делать нечего в селе, мы сидим навеселе. Всех с пятницей!

    bot, 14 Ноября 2014

    Комментарии (28)
  3. Perl / Говнокод #17110

    −288

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    sub serialize {
        my ($obj) = @_;
        my $result;
    
        my $ref = ref $obj;
        if ($ref eq 'HASH') {
            $result = sprintf '{ %s }', join(', ', map { qq/"$_": / . serialize($obj->{$_}) } keys %$obj);
        } elsif ($obj eq 'ARRAY') {
            $result = sprintf '[ %s ]', join(', ', map { serialize($_) } @$obj);
        } elsif (! $ref) {
            if (!defined $obj) {
                $result = 'null';
            } elsif ($obj =~ /^ -? (?:0|[1-9]\d*) (?:\.\d+)? (?:[eE][+-]?\d+)? $/x) {
                $result = $obj;
            } else {
                $obj =~ s/(["\\])/\\$1/g;
                $obj =~ s/\r/\\r/g;
                $obj =~ s/\n/\\n/g;
                $obj =~ s/\t/\\t/g;
                $result = qq/"$obj"/;
            }
        }
    
        return $result;
    }

    В продолжение #17106. Самопальная Самобытная сериализация в JSON.

    Elvenfighter, 14 Ноября 2014

    Комментарии (42)
  4. PHP / Говнокод #17109

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    bool 
     CIBlockElement::Update(...);
    
    // ......
    
    $el = new CIBlockElement;
    
    // ......
    
    $res = $el->Update($PRODUCT_ID, $arLoadProductArray);

    Нынче статический метод вызывается через объект.

    ( Пример из официальной документации Битрикс https://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/update.php )

    h0ckeypl4yer, 14 Ноября 2014

    Комментарии (5)
  5. Python / Говнокод #17108

    −106

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    >>> quit()
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
    TypeError: 'str' object is not callable
    >>> quit  
    'Use Ctrl-D (i.e. EOF) to exit.'
    >>> type(quit)
    <type 'str'>
    >>> type(exit)
    <type 'str'>

    Первый раз запустил питон 2.4...

    bormand, 14 Ноября 2014

    Комментарии (18)
  6. Java / Говнокод #17107

    +74

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public static void main(String[] args) throws Exception {
        ...
        try {
            Signature.getInstance("NONEwithRSA", "SUN");
            throw new Exception("call succeeded");
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        System.out.println("OK");
    }

    http://jdk.openjdk-rt.googlecode.com/hg/test/java/security/Signature/NONEwithRSA.java

    Naturlih, 13 Ноября 2014

    Комментарии (11)
  7. C# / Говнокод #17105

    +136

    1. 1
    2. 2
    3. 3
    public override string GetMobileBody() {
    	return System.Text.Encoding.UTF8.GetString(new Terrasoft.Common.CompressionUtilities().UnZip(new byte[] { 31,139,8, /*... over 9000 bytes ...*/,36,59,0,0 }));
    }

    По долгу службы пришлось столкнуться с одной небезызвестной CRM отечественного производства.
    Безумно интересен сакральный смысл такого кода.

    lorond, 13 Ноября 2014

    Комментарии (29)
  8. Java / Говнокод #17104

    +76

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    package ololo.cdn.util;
    
    /**
     *
     */
    public interface AnswerCodes
    {
    
        public static final int CODE_OK = 0;
        public static final int CODE_NO_AUTH = 1;
        public static final int CODE_NO_ACTION_DONE = 2;
        public static final int CODE_ERROR_PARAMETERS = 4;
        public static final int CODE_NO_RIGHTS = 8;
        public static final int CODE_NOT_UNIQ_PARENT = 16;
        public static final int CODE_NOT_EXIST_COLUMNS = 32;
    
        public static final String ANSWER_NO_AUTH = "{\"result\":\"error\",\"code\":\""  + CODE_NO_AUTH + "\"}";
        public static final String ANSWER_NO_RIGHTS = "{\"result\":\"error\",\"code\":\""  + CODE_NO_RIGHTS + "\"}";
        public static final String ANSWER_NOT_UNIQ_PARENT = "{\"result\":\"error\",\"code\":\""  + CODE_NOT_UNIQ_PARENT + "\"}";
        public static final String ANSWER_NOT_EXIST_COLUMNS = "{\"result\":\"error\",\"code\":\""  + CODE_NOT_EXIST_COLUMNS + "\"}";
    
        public static final String ANSWER_OK = "{\"result\":\"ok\",\"code\":\""  + CODE_OK + "\"}";
        public static final String ANSWER_NOTHING_DONE = "{\"result\":\"ok\",\"code\":\""  + CODE_NO_ACTION_DONE + "\"}";
    }

    taras_shs, 13 Ноября 2014

    Комментарии (81)
  9. PHP / Говнокод #17103

    +157

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    //
    // JS-protected mailto: link
    //
    function s2_js_mailto($name, $email)
    {
    	$parts = explode('@', $email);
    
    	if (count($parts) != 2)
    		return $name;
    
    	return '<script type="text/javascript">var mailto="'.$parts[0].'"+"%40"+"'.$parts[1].'";'.
    		'document.write(\'<a href="mailto:\'+mailto+\'">'.str_replace('\'', '\\\'', $name).'</a>\');</script>'.
    		'<noscript>'.$name.', <small>['.$parts[0].' at '.$parts[1].']</small></noscript>';
    }

    И вот таким образом, S2 CMS защищает почтовые адреса через PHP/JS. Оригинально.

    volter9, 13 Ноября 2014

    Комментарии (171)
  10. JavaScript / Говнокод #17102

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    jQuery(document).
    filter(function() { return window.top.document === this; }).
    ready(function() {
    jQuery(window.top.document).
    find('body').
    append('<div style="position:absolute;position:fixed;bottom:20px;left:10px;z-index:9999;padding:2px;padding-top:6px;border:2px #808080 solid;border-radius:9px;box-shadow:0 0 10px rgba(128,128,128,0.8);">'
    +'<img border="0" src="data:image/png;base64,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" /></div></div>'
    ....

    вот так делает img

    ryselis, 13 Ноября 2014

    Комментарии (26)