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

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

    0

    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
    enum crap
    {
        shit = 0,
        fuck,
        dick,
        ass,
        turd,
        fart,
    };
    
    static char *crap_to_str(int crap)
    {
        switch (crap)
        {
            case shit:
            {
                return "shit";
            }
            case fuck:
            {
                return "fuck";
            }
            case dick:
            {
                return "dick";
            }
            case ass:
            {
                return "ass";
            }
            case turd:
            {
                return "turd";
            }
            case fart:
            {
                return "fart";
            }
            default:
            {
                return "!!!UNKNOWN CRAP!!!";
            }
        }
    }

    Есть ли возможность через какую-нибудь плюсовую метушню с шаблонами, констэспрами и препроцессором нагенерировать подобную хрень из готового определения структуры?

    j123123, 18 Декабря 2018

    Комментарии (45)
  3. PHP / Говнокод #24800

    0

    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
    // CVE-2012-5692
    
    /* 4015. */        static public function get($name) 
    /* 4016. */        { 
    /* 4017. */            // Check internal data first 
    /* 4018. */            if ( isset( self::$_cookiesSet[ $name ] ) ) 
    /* 4019. */            { 
    /* 4020. */                return self::$_cookiesSet[ $name ]; 
    /* 4021. */            } 
    /* 4022. */            else if ( isset( $_COOKIE[ipsRegistry::$settings['cookie_id'].$name] ) ) 
    /* 4023. */            { 
    /* 4024. */                $_value = $_COOKIE[ ipsRegistry::$settings['cookie_id'].$name ]; 
    /* 4025. */    
    /* 4026. */                if ( substr( $_value, 0, 2 ) == 'a:' ) 
    /* 4027. */                { 
    /* 4028. */                    return unserialize( stripslashes( urldecode( $_value ) ) ); 
    /* 4029. */                } 
    
    /*  
    The vulnerability is caused due to this method unserialize user input passed through cookies without a proper 
    sanitization. The only one check is done at line 4026,  where is controlled that the serialized string starts 
    with 'a:',  but this is not  sufficient to prevent a  "PHP Object Injection"  because an attacker may send  a 
    serialized string which represents an array of objects.  This can be  exploited to execute arbitrary PHP code 
    via the  "__destruct()" method of the  "dbMain" class,  which calls the "writeDebugLog" method to write debug 
    info into a file.  PHP code may  be injected  only through the  $_SERVER['QUERY_STRING']  variable,  for this 
    reason successful exploitation of this vulnerability requires short_open_tag to be enabled. 
    */

    Если вы думаете, что самое плохое, что ждёт ваш уютный сайт на «PHP» — это Роберт-брось-таблицу, то вы глубоко ошибаетесь.

    CSRF verification passed.

    gost, 23 Сентября 2018

    Комментарии (45)
  4. C++ / Говнокод #24791

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    template <class F, class G>
    auto operator*(F&& f, G&& g) -> decltype(auto) {
    	return [=](auto ...args) { return f(g(args...)); };
    }

    Композиция функций

    IBets, 21 Сентября 2018

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

    −2

    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
    #include <iostream>
    
    class ParusProject
    {
        public:
            void start () const
            {
                std::cout << "Майбутнє вже тут!";
            }
    };
    
    void MakeLvivGreatAgain()
    {
        ParusProject *city = new ParusProject;
        city->start();
    }
    int main()
    {
        MakeLvivGreatAgain();
        return 0;
    }

    Увидено на билборде.
    1. Нахуя делать целый класс для выдачи одного неизменяемого стринга?
    2. int main() {…} в оригинале не было, компилятор ругался ошибкой, пришлось самому дописывать.
    3. Эквивалент хеллоуворлда с кириллицей на 21, мать его, строку.

    shite, 10 Августа 2018

    Комментарии (45)
  6. Куча / Говнокод #24608

    −2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Сравнение строк в "Java":
    
    if(striker.equals(govno)){
    
    Сравнение строк в "PHP":
    
    if(striker==govno){

    20_BLACK_CENTIMETERS, 10 Августа 2018

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    Чего такого умеют кресты, что не умеет Си?
    
    Шаблоны - никто не пользует.
    
    Перегрузка операторов - вообще дурь какая-то: не понятно чего ожидать от полюса или минуса.
    
    Очевидный ответ - объекты , а так уж они нужны? Ну вот есть объект - библиотека работы с сокетами. Создал экземпляр, заполнил поля с адресом и портом, выполнил метод connect. Попользовался, освободил память. И чем оно лучше, чем если бы я запилил структуру и набор функций для работы с ней?
    
    За скобки вынесем области применения, где преимущества объектного подхода очевидны: игры, ГУЙ и прочее. Поговорим об остальном.

    Псто не мое.
    Заходите на "огонек": https://www.linux.org.ru/forum/development/14396202

    Elvenfighter, 08 Августа 2018

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

    −6

    1. 1
    Бомбёж по поводу Telegram

    Вот что бы там не говорили про право на тайну переписку, а у него есть важное ограничение, о котором все забыли: если человек подозревается в преступлении, то государство имеет полное моральное и юридическое право читать его переписку. А вот Пашка Дуров об этом не знает, либо знает, но намеренно это игнорирует, а потом тысячи глупых хомячков бросают из окон самолётики и обвиняют РКН. Я вот полностью поддерживаю международное уголовное преследование Пашки за пособничество терроризму.

    dm_fomenok, 04 Мая 2018

    Комментарии (45)
  9. Куча / Говнокод #24019

    −1

    1. 1
    Ёб твою напровыеб, из-за ёбаного Кемерово отменили передачу "Давай поженимся". Мне что теперь делать?

    AnusHunter, 27 Марта 2018

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

    0

    1. 1
    2. 2
    3. 3
    if (stripos($user->getEmail(), '@mailinator.com') !== false) {
         $validator->setError('text', 'System health check error');
    }

    ААААААААААААААААААААААААААААААААААААААА ЭТО ШЕДЕВР

    https://github.com/wiistriker/govnokod_legacy/blob/9f1b89379a64f87a275f9d932128870a8292fb1e/modules/comments/controllers/commentsPostController.php#L66

    inho, 12 Февраля 2018

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

    −3

    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
    https://habrahabr.ru/company/mailru/blog/344696/
    
    Долбоёбы из "Mail.Ru", приобрётшие авторитет только благодаря тому, что их сайтик случайно стал одним из самых популярных, учат жизни:
    
    >>> НЕ ДЕЛАЙТЕ ТАК:
    >>> 
    >>> /* Небезопасный код: */
    >>> $query = $pdo->query("SELECT * FROM users WHERE username = '" . $_GET['username'] . "'");
    >>> 
    >>> Делайте так:
    >>> 
    >>> /* Защищено от SQL-внедрений: */
    >>> $results = $easydb->row("SELECT * FROM users WHERE username = ?", $_GET['username']);
    
    Будто переменную в первом варианте запроса нельзя пропустить через "mysql_real_escape_string" или иную экранирующую функцию.
    Зато в итоге запрос остаётся очевидным, без даунских высчитываний вида "каким по счёту является значение поля и какой по счёту вопросительный знак ему соответствует". Тьфу, блядь...

    COWuTEJIbTBOEuMAMKu, 15 Декабря 2017

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