1. Си / Говнокод #16608

    +134

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
        goto fail;
    if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
        goto fail;
        goto fail;
    if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
        goto fail;

    https://www.imperialviolet.org/2014/02/22/applebug.html

    Понятно, что третий if не выполнится. Кстати, это был баг в Apple SSL/TLS, привёдший к уязвимости.

    Кстати, GCC с -Wall это не ловит. Ловит только Clang, и то только с -Wunreachable-code. Мораль: заключайте все тела ифов в блоки!

    someone, 28 Августа 2014

    Комментарии (45)
  2. Си / Говнокод #16601

    +129

    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
    #include <stdio.h>
    
    #define квот [
    #define квзак ]
    #define фигот {
    #define фигзак }
    #define главный main
    #define напечатать(x) printf("%s", x)
    #define псевдоним typedef
    #define конст const
    
    псевдоним int цел;
    псевдоним char символ;
    
    цел главный()
    фигот
    
    конст символ* строки квот квзак = фигот "Привет, ", "мир!" фигзак;
    напечатать(строки квот 0 квзак);
    напечатать(строки квот 1 квзак);
    
    фигзак

    http://www.gamedev.ru/code/forum/?id=192614
    У человека проблема - его напрягает переключение раскладок при написании кода.
    Я в шутку предложил такое решение проблемы. Для написания кода главной функции теперь не нужно переключения раскладок!

    gammaker, 27 Августа 2014

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

    +140

    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
    //block.exe
    //divide information by bloks
    #include<fstream> 
    #include <string>  
    #include <windows.h>
    #include <ctime>   // time
    #include<iostream>
    using namespace std;
    int main()
    {
     FreeConsole();
    
       //dati programe zapustitsia
    
    
    char mask[255];
    
    
    char maski1[255],  maski2[255], maski3[255], maski4[255], maski5[255], maski6[255];
    char maski7[255],  maski8[255],  maski9[255], maski10[255], maski11[255],  maski12[255], maski13[255];
    
    //  [SKIPPED]
    char maski250[255],  maski251[255],  maski252 [255],  maski253[255],  maski254[255],  maski255[255]; 
    char maski256[255];
    
    char maski82[255], maski83[255],maski84[255],maski85[255], maski86[255], maski87[255];
    
    string str2;
    
    ifstream failpozovatelia("fail.txt");
               while (!failpozovatelia.eof())
               {
                failpozovatelia>>mask;
                cout<<mask<<endl;
            ifstream rt(mask);
    
            while (!rt.eof())
               {
    
           rt>>maski1>>maski2>>maski3>>maski4>>maski5>>maski6>>maski7>>maski8>>maski9>>maski10;
         rt>>maski11>>maski12>>maski13>>maski14>>maski15>>maski16>>maski17>>maski18>>maski19>>maski20>>maski21;
         rt>>maski22>>maski23>>maski24>>maski25>>maski26>>maski27>>maski28>>maski29>>maski30>>maski31;
         rt>>maski32>>maski33>>maski34>>maski35>>maski36>>maski37>>maski38>>maski39>>maski40>>maski41>>maski42;
    
    // SKIPPED
    
      cout<<maski1<<maski2<<maski3<<maski4<<maski5<<maski6<<maski7<<maski8<<maski9<<maski10;
         cout<<maski11<<maski12<<maski13<<maski14<<maski15<<maski16<<maski17<<maski18<<maski19<<maski20<<maski21;
         cout<<maski22<<maski23<<maski24<<maski25<<maski26<<maski27<<maski28<<maski29<<maski30<<maski31;
         cout<<maski32<<maski33<<maski34<<maski35<<maski36<<maski37<<maski38<<maski39<<maski40<<maski41<<maski42;
     
    // SKIPPED
    
     ofstream blockfaila("block.txt",ios::out);
     {
         
               blockfaila<<maski1<<maski2<<maski3<<maski4<<maski5<<maski6<<maski7<<maski8<<maski9<<maski10;
          blockfaila<<maski11<<maski12<<maski13<<maski14<<maski15<<maski16<<maski17<<maski18<<maski19<<maski20<<maski21;
          blockfaila<<maski22<<maski23<<maski24<<maski25<<maski26<<maski27<<maski28<<maski29<<maski30<<maski31;
          blockfaila<<maski32<<maski33<<maski34<<maski35<<maski36<<maski37<<maski38<<maski39<<maski40<<maski41<<maski42;
          blockfaila<<maski43<<maski44<<maski45<<maski46<<maski47<<maski48<<maski49<<maski50<<maski51<<maski52;
      
    // SKIPPED
    
     }
       Sleep(128);
    
      blockfaila.close();
    
    
    //wait other opration while done.
    a:
         ifstream nextblock("nextblock.txt");
        {
    
        nextblock>>str2;
        }
    
         string sub3 = "*";
      unsigned int pos2 = str2.find(sub3,0);
      cout << " You have enter " << str2 << endl;
    
        if(pos2 != string::npos)
        {
        {
           Sleep(128);
    
    
        }  
    
           
         else
        {goto a;
        }
    
                        }
                       }
    
    return 0;}

    12 это 35 это 7876...
    126321 124 351895321 84 42 21 11 6 3 2 1 52 26 13 7 421 8+16=32 32 16 8 4 2 1
    00100 1 0 10 100 4+16+64=84 0 0 1 1 0 10 0 0 0 1 0 1000 0 0 0 0 0 0
    821 32 168 4 2 1
    обратно если длины нехватает береш двух значнае, все рабоботает, пересчитай, если не сжимается минусуешь минус 10 и пробуешь сжать снова сжать.

    TarasB, 19 Августа 2014

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

    +138

    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
    int _ZN12LoggersChain2DoE10LogLevel_tPKcPv(){printf("_ZN12LoggersChain2DoE10LogLevel_tPKcPv\n");}
    int _ZN12LoggersChain10AddLogFuncERK7FunctorIv8TypeListIK10LogLevel_tS1_IPKcS1_IPv8NullTypeEEEE(){printf("_ZN12LoggersChain10AddLogFuncERK7FunctorIv8TypeListIK10LogLevel_tS1_IPKcS1_IPv8NullTypeEEEE\n");}
    int _ZN12LoggersChainC1Ev(){printf("_ZN12LoggersChainC1Ev\n");}
    int _Z22SetLoggerForExceptionsR7FunctorIv8TypeListIK10LogLevel_tS0_IPKcS0_IPv8NullTypeEEEE(){printf("_Z22SetLoggerForExceptionsR7FunctorIv8TypeListIK10LogLevel_tS0_IPKcS0_IPv8NullTypeEEEE\n");}
    int _Z19SetLoggerForSignalsR7FunctorIv8TypeListIK10LogLevel_tS0_IPKcS0_IPv8NullTypeEEEE(){printf("_Z19SetLoggerForSignalsR7FunctorIv8TypeListIK10LogLevel_tS0_IPKcS0_IPv8NullTypeEEEE\n");}
    int _Z24GetCppSigHandlerInstancev(){printf("_Z24GetCppSigHandlerInstancev\n");}
    int _ZN13CppSigHandler11set_handlerERKSt6vectorIiSaIiEERK7FunctorIv8TypeListIi8NullTypeEE(){printf("_ZN13CppSigHandler11set_handlerERKSt6vectorIiSaIiEERK7FunctorIv8TypeListIi8NullTypeEE\n");}
    int _ZN7OSErrorC1EPFPKciE(){printf("_ZN7OSErrorC1EPFPKciE\n");}
    int osso_initialize(){printf("osso_initialize\n");}
    con_ic_connection_new(){
    printf("con_ic_connection_new\n");
    return 0;
    }
    int osso_get_dbus_connection()
    {
    return 0;
    }
    
    int osso_get_sys_dbus_connection()
    {
    return 0;
    }
    }
    int  dbus_connection_add_filter ()
    {
    return 0;
    }
    int dbus_connection_send_with_reply_and_block ()
    {
    return 0;
    }
    int _dbus_header_get_message_type()
    {
    return 0;
    }
    int hildon_gtk_entry_set_input_mode(){printf("hildon_gtk_entry_set_input_mode\n");}
    
    
    
    int hildon_gtk_im_context_hide()
    {
    }int url_label_new()
    {
    return 0;
    }
    
    
    int url_label_set_text()
    {
    return 0;
    }
    int url_label_get_type()
    {
    return 0;
    }
    int hildon_uri_get_scheme_from_uri()
    {
    return 0;
    }
    int gtk_widget_tap_and_hold_setup()
    {
    
    printf("gtk_widget_tap_and_hold_setup\n");
    return 0;
    }
    int message_view_new_with_content()
    {
    
    printf("message_view_new_with_content\n");
    return 0;
    }
    int message_view_get_type()
    {
    
    printf("message_view_get_type\n");
    return 0;
    }
    
    int message_view_hide_content(){printf("message_view_hide_conteny\n");return 0;}

    Врапперы для запуска maemo-приложений на других платформах. Убого, но skype запускается.

    mittorn, 05 Августа 2014

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

    +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
    typedef unsigned char   uint8_t;
    
           /*   . . .   */
    uint8_t someFunction (void) 
    { 
      uint8_t endp;
    
           /*   . . .   */
    
      res = (endp >= 0);
    
           /*   . . .   */
    
      return res;
    }

    Больше ли нуля беззнаковое целое?

    eXternum, 28 Июля 2014

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

    +136

    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
    #include studio.h
    
    main()
    {
      uint16 final,num;
      printf(“enetr the unsigned integer 16bit number “);
      scanf(“%d”, &num);
      final= numbitset(num);
      printf(“%d”, final);
    }
    
    unit16 numbitset( unit16 x)
    {
      int i, j,result, total=0;
      uint16 no,modify
      for(i=1;i<=4;i++)
      {
        j=pow(10,i);
        no= (x%(j))>>(i-1)*4;
        if(no==0)
        {
          result=0;
        }
        else if(no==1)
        {
          result=1;
        }
        else if(no==2)
        {
          result=1;
        }
        else if(no==3)
        {
          result=2;
        }
       else
       {
          result = othernum(no/4)+othernum(no%4);	
        }
        total = total+result;
      }
    }
    
    uint16 othernum( uint16 y)
    {
      switch(y)
      {
        case 0:
          return(0);
          break;
      case 1:
          return(1);
         break;
      case 2:
        return(1);
        break;
       case 3:
          return(2);
          break;
       default:
        return;
        break;
      }
    }

    Посчитать количество значащиз битов в 16ти разрядном целом. Реальный тест на собеседовании дал такой вот результат. Угадайте откуда кандидат :)

    multilexa, 18 Июля 2014

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

    +136

    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
    void lcd_show(uint8_t number)
    {
        uint8_t digit3 = 0;
        uint8_t digit2 = 0;
        uint8_t digit1 = number > 99u ? 1u : 0;
    
        switch(number)
        {
            case 0u: 
                digit3 = 0u;
                digit2 = 0u;
            break;
            case 1u: 
                digit3 = 1u;
                digit2 = 0u;
            break;
    .....
    .....
            case 199u: 
                digit3 = 9u;
                digit2 = 9u;
            break;
            default:
                digit3 = '-';
                digit2 = '-';
                digit1 = 0;
            break;
        }
    
        display3d(digit3);
        display2d(digit2);
        display1d(digit1);
    }

    8-битный микроконтроллер, 32768Гц тактовая частота, батарейное питание, CPU по-максимуму в спячке для экономии энергии.
    Функции display3d(), display2d(), display1() отображают цифру в соответствующем знакоместе на 2.5 разрядном LCD от 0 до 199.
    Преобразование числа в BCD формат.
    Эта жесть даёт выигрыш порядка 10 мкА перед "обычным" преобразования с делениями на 10 за счёт меньшего времени работы CPU для расчёта. Вроде говнокод, но в данном случае оправдан, потому не воняет :)

    FlySnake, 09 Июля 2014

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

    +136

    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
    switch(event->touch_point) {
          case 5:
             input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, event->pressure);
             input_report_abs(data->input_dev, ABS_MT_POSITION_X, event->x5);
             input_report_abs(data->input_dev, ABS_MT_POSITION_Y, event->y5);
             input_report_abs(data->input_dev, ABS_MT_WIDTH_MAJOR, 1);
             input_mt_sync(data->input_dev);
    //         printk("===x2 = %d,y2 = %d ====\n",event->x2,event->y2);
          case 4:
             input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, event->pressure);
             input_report_abs(data->input_dev, ABS_MT_POSITION_X, event->x4);
             input_report_abs(data->input_dev, ABS_MT_POSITION_Y, event->y4);
             input_report_abs(data->input_dev, ABS_MT_WIDTH_MAJOR, 1);
             input_mt_sync(data->input_dev);
    //         printk("===x2 = %d,y2 = %d ====\n",event->x2,event->y2);
          case 3:
             input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, event->pressure);
             input_report_abs(data->input_dev, ABS_MT_POSITION_X, event->x3);
             input_report_abs(data->input_dev, ABS_MT_POSITION_Y, event->y3);
             input_report_abs(data->input_dev, ABS_MT_WIDTH_MAJOR, 1);
             input_mt_sync(data->input_dev);
    //         printk("===x2 = %d,y2 = %d ====\n",event->x2,event->y2);
          case 2:
             input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, event->pressure);
             input_report_abs(data->input_dev, ABS_MT_POSITION_X, event->x2);
             input_report_abs(data->input_dev, ABS_MT_POSITION_Y, event->y2);
             input_report_abs(data->input_dev, ABS_MT_WIDTH_MAJOR, 1);
             input_mt_sync(data->input_dev);
    //         printk("===x2 = %d,y2 = %d ====\n",event->x2,event->y2);
          case 1:
             input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, event->pressure);
             input_report_abs(data->input_dev, ABS_MT_POSITION_X, event->x1);
             input_report_abs(data->input_dev, ABS_MT_POSITION_Y, event->y1);
             input_report_abs(data->input_dev, ABS_MT_WIDTH_MAJOR, 1);
             input_mt_sync(data->input_dev);
             printk("===x1 = %d,y1 = %d ====\n",event->x1,event->y1);
    
          default:
    //         printk("==touch_point default =\n");
             break;
       }

    Автору платили за строки?
    Из драйвера тачскрина ft5x0x

    Pythoner, 28 Июня 2014

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

    +133

    1. 1
    2. 2
    /* All the message are high priority message  */
    message_id = message_id | LOW_PRIORITY_MESSAGE_MASK;

    Все сообщения с высоким приоритетом. *Да-да, конечно*

    sermp, 27 Июня 2014

    Комментарии (1)
  10. Си / Говнокод #16222

    +136

    1. 1
    else if ( (ucmd->upmove > 10) && (self->client->ps.pm_flags & PMF_JUMP_HELD) && self->client->ps.groundTime && (level.time - self->client->ps.groundTime) > 150 && !BG_HasYsalamiri(g_gametype.integer, &self->client->ps) && BG_CanUseFPNow(g_gametype.integer, &self->client->ps, level.time, FP_LEVITATION) )

    Нам нужно больше условий!

    gost, 24 Июня 2014

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