1. Лучший говнокод

    В номинации:
    За время:
  2. Си / Говнокод #8250

    +139

    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
    j = 0;
    while (len >= 8)
    {
    	N[0] = N[0] ^ in[j++];
    	N[1] = N[1] ^ in[j++];
    
    	// first round
    	S = N[0];
    	N[0] = N[0] + k[0]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	S = N[0];
    	N[0] = N[0] + k[1]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	S = N[0];
    	N[0] = N[0] + k[2]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	/* skipped k[3] - k[6] */		
    
    	S = N[0];
    	N[0] = N[0] + k[7]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	// second round
    	S = N[0];
    	N[0] = N[0] + k[0]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	/* skipped */
    
    	S = N[0];
    	N[0] = N[0] + k[7]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	len = len - 8;
    };
    
    if (len > 0)
    {
    	for (i=0;i<len;i++)
    		((uint8 *)N)[i] = ((uint8 *)N)[i]^((uint8 *)&in[j])[i];
    
    	// first round
    	S = N[0];
    	N[0] = N[0] + k[0]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	/* skipped */
    
    	S = N[0];
    	N[0] = N[0] + k[7]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	// second round
    	S = N[0];
    	N[0] = N[0] + k[0]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	/* skipped */
    
    	S = N[0];
    	N[0] = N[0] + k[7]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    };

    полная версия - 250 строк.
    это не школолостудентокод, это реальный код, за который когда то кому то были заплачены деньги

    defecate-plusplus, 20 Октября 2011

    Комментарии (12)
  3. Си / Говнокод #7979

    +139

    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
    int x = 0;
    	for (i = 4; i <= 31; i++ && x++)
    		if (code.l & (1 << i))
    		  {
    		    if (x == 0)
    		      {
    			info.bios_info->characteristics = (char**) malloc (sizeof (char*));
    			info.bios_info->characteristics[x] = characteristics[i-3];
    		      }else
    		      {
    		        realloc (info.bios_info->characteristics, (sizeof(char*) * x));
    			info.bios_info->characteristics[x] = characteristics[i - 3];
    		      }
    		  }

    realloc и массив указателей типа char*

    http://www.linux.org.ru/forum/development/6786393

    sayidandrtfm, 25 Сентября 2011

    Комментарии (19)
  4. Си / Говнокод #7546

    +139

    1. 1
    2. 2
    3. 3
    4. 4
    char *reg = data;
    char *temp = "blahblah is ";
    
    strcat(temp,(const char*)"reg[4]");

    Как оказывается на Си можно конкатенировать строки

    Kortez, 15 Августа 2011

    Комментарии (8)
  5. C# / Говнокод #7518

    +139

    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
    private int GetMaxDayValue(int month, int year)
        {
            int value = 0;
            switch (month)
            {
                case 1:
                    value = 31;
                    break;
                case 2:
                    switch (year)
                    {
                        case 2008:
                            value = 29;
                            break;
                        case 2009:
                            value = 28;
                            break;
                        case 2010:
                            value = 28;
                            break;
                        case 2011:
                            value = 28;
                            break;
                        case 2012:
                            value = 29;
                            break;
                        case 2013:
                            value = 28;
                            break;
                        case 2014:
                            value = 28;
                            break;
                        case 2015:
                            value = 28;
                            break;
                        case 2016:
                            value = 29;
                            break;
                    }
    
                    break;
                case 3:
                    value = 31;
                    break;
                case 4:
                    value = 30;
                    break;
                case 5:
                    value = 31;
                    break;
                case 6:
                    value = 30;
                    break;
                case 7:
                    value = 31;
                    break;
                case 8:
                    value = 31;
                    break;
                case 9:
                    value = 30;
                    break;
                case 10:
                    value = 31;
                    break;
                case 11:
                    value = 30;
                    break;
                case 12:
                    value = 31;
                    break;
            }
            return value;
        }

    Кусок кода из активно используемого корпоративного приложения :)

    TasmX, 11 Августа 2011

    Комментарии (33)
  6. Си / Говнокод #7089

    +139

    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
    bool aiccu_os_install(void)
    {
        /* Check if IPv6 support is available */
        if (access("/proc/net/if_inet6", F_OK))
        {
            /* Doing the modprobe doesn't guarantee success unfortunately */
            (void)system("modprobe -q ipv6 2>/dev/null >/dev/null");
    
            /* Thus test it again */
            if (access("/proc/net/if_inet6", F_OK))
            {
                dolog(LOG_ERR, "No IPv6 Stack found! Please check your kernel and module configuration\n");
                return false;
            }
        }
    
        /* Try to load modules (SIT tunnel, TUN/TAP)
         * They can be kernel builtins and there is no easy
         * way to check if they are loaded/built except for
         * trying to use them and fail at that point
         */
        (void)system("modprobe -q sit 2>/dev/null >/dev/null");
        (void)system("modprobe -q tun 2>/dev/null >/dev/null");
    
        return true;
    }

    raorn, 27 Июня 2011

    Комментарии (12)
  7. Си / Говнокод #6978

    +139

    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
    #include <cstdio>
    #include <malloc.h>
    
    int number;
        printf("Int to c_str convertation whith separator: ");
        do {
            printf("Enter a number (int): ");
        }
        while (!scanf ("%d",&number));
        bool negative = number<0;
        number=abs(number);
        char* reversed = (char*)(malloc(sizeof(char)));
        *reversed = 0;
        int divider=1;
        unsigned char i=3;
        int buf;
        int val = 0;
        int size=1;
       forever{
            buf=number%(divider*10);
            i--;
            size++;
            reversed = (char*)(realloc(reversed,size*sizeof(*reversed)));
            *(reversed+size*sizeof(*reversed)-1) = (buf-val)/divider+48;
            divider*=10;
            val=buf;
            if (!i){
                size++;
                reversed = (char*)(realloc(reversed,size*sizeof(*reversed)));
                *(reversed+size*sizeof(*reversed)-1)=32;
                i=3;
            }
            if (buf==number) {break;}
        }
        if (negative){
            size++;
            reversed = (char*)(realloc(reversed,size*sizeof(*reversed)));
            *(reversed+size*sizeof(*reversed)-1)='-';
        }
        char* output = (char*)(malloc(size*sizeof(*reversed)));
        for (i=0;i<size*sizeof(*reversed);i++){
            *(output+i) = *(reversed+size*sizeof(*reversed)-((1+i)*sizeof(*reversed)));
        }
         printf("Number as char* is: %s",output);

    Выводит число в строку, вставляя пробел после каждых 3-х цифр.

    Sacha_D, 17 Июня 2011

    Комментарии (3)
  8. Куча / Говнокод #6817

    +139

    1. 1
    2. 2
    3. 3
    img[width=120] {
    width: 120px;
    }

    Наткнулся в стилях dleшного шаблона....

    akim, 02 Июня 2011

    Комментарии (7)
  9. Си / Говнокод #6542

    +139

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    const bool ejected = (device_type.is_new_protocol() ? device_status.status.stop : (!device_status.status.in_preset && !device_status.status.in_preset)) != 0;
    ...
    if (  (p_ddevice && p_ddevice->preset_state.in_progress ())
       || (p_edevice && p_edevice->preset_state.in_progress ())
       )
       return (CTRL_WAIT);
    ...

    я не повторяюсь никогда никогда

    ilardm, 04 Мая 2011

    Комментарии (57)
  10. PHP / Говнокод #6402

    +139

    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
    class secure
    {
        public function clear_get($_GET)
        {
            foreach ($_GET as $inx => $var)
            {
                if (!empty($_GET[$inx]))
                {
                    $_GET[$inx] = trim($_GET[$inx]);
                    $_GET[$inx] = mysql_real_escape_string($_GET[$inx]);
                    $_GET[$inx] = htmlspecialchars($_GET[$inx]);
               
                }
                else
                    $_GET[$inx] =NULL;
            
            }
        }
    
           public function clear_post($_POST)
        {
            foreach ($_POST as $inx => $var)
            {
                if (!empty($_GET[$inx]))
                {
                    $_POST[$inx] = trim($_POST[$inx]);
                    $_POST[$inx] = mysql_real_escape_string($_POST[$inx]);
    
                }
                else
                    $_POST[$inx] =NULL;
    
            }
        }
    }

    Опытный прогер. мля

    Vasiliy, 19 Апреля 2011

    Комментарии (8)
  11. Куча / Говнокод #6350

    +139

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    For i:=1 to 70 do
    Begin
             a[i]:=random(9);
             if a[i] div 2 = 0 then
                  a[i]:=a[i]
             else begin
                   a[i]:=0;
                   i:=i-1;
              end;
    end;

    Одноклассница поразила.
    Задача - заполнить массив из 70 элементов чётными числами [1..8]
    Над блонидинками конечно неприлично шутить, но...
    Чем был хуже простой a[i]:=random(5)*2;

    Falcon, 14 Апреля 2011

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