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

    В номинации:
    За время:
  2. Куча / Говнокод #25679

    −1

    1. 1
    https://vc.ru/services/71897-specialist-po-infobezopasnosti-iz-kazahstana-zapustil-telegram-bota-mailsearchbot-kotoryy-vydaet-paroli-po-adresu-pochty

    Проверь

    AHCKuJlbHblu_nemyx, 18 Июня 2019

    Комментарии (233)
  3. C++ / Говнокод #24241

    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
    https://github.com/dotnet/coreclr/blob/a589e3926a1780256fdb52376f8681fe047daf54/src/vm/i386/cgenx86.cpp#L1551-L1553
    
        PAL_TRY(Param *, pParam, &param)
        {
            unsigned char buffer[16];
            DWORD* dwBuffer = NULL;
    
            DWORD maxCpuId = getcpuid(0, buffer);
    
            if (maxCpuId < 1)
                goto lDone;
    
            dwBuffer = (DWORD*)buffer;
    
            if (dwBuffer[1] == 'uneG') {
                if (dwBuffer[3] == 'Ieni') {
                    if (dwBuffer[2] == 'letn')  {  // get SMT/multicore enumeration for Intel EM64T

    С каких пор в одинарные кавычки можно писать больше одного символа? Это какое-то MSVC или что?

    j123123, 09 Мая 2018

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

    +1

    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
    // https://godbolt.org/z/QAR_nT
    // https://govnokod.ru/26701#comment550329
    #include <cstddef>
    #include <string>
    #include <cassert>
    
    
    struct assert_failure
    {
        explicit assert_failure(const char *sz)
        {
            std::fprintf(stderr, "Assertion failure: %s\n", sz);
            std::quick_exit(EXIT_FAILURE);
        }
    };
    
    // эта херня не совсем корректно будет обрабатывать всякую хрень вроде ", , , " - оно это посчитает за 4 аргумента,
    // и если считать " скобочки, тогда еще надо запилить обработку эскейп-последовательности, для хуйни типа "pidor\" govno"
    // но мне лень эту хуйню допиливать.
    constexpr std::size_t count_args(const char *s, std::size_t depth = 0, std::size_t pos = 0, std::size_t count = 0)
    {
      if (s[pos] == '\0'){
        if(depth != 0)
          throw assert_failure("kakoi bagor)))\n");
        if(pos == 0)
          return 0;
        return count+1;
      }
      else if(s[pos] == '{')
      {
        return count_args(s, depth + 1, pos + 1, count);
      }
      else if(s[pos] == '}')
      {
        if(depth == 0)
          throw assert_failure("kakoi bagor)))\n");
        return count_args(s, depth - 1, pos + 1, count);
      }
      else if(depth == 0)
      {
        if(s[pos] == ',')
        {
          return count_args(s, depth, pos + 1,  count + 1);
        }
      }
      return count_args(s, depth, pos+1,  count); 
    }
    
    #define TO_STR(...) #__VA_ARGS__
    #define ARGNUM(...) count_args(TO_STR(__VA_ARGS__))
    
    #define krestogovnotypeof(a) std::remove_reference<a>::type
    
    #define FOR_RANGE(type, varname, ...) for(struct {size_t cnt; krestogovnotypeof(type) arr[ ARGNUM(__VA_ARGS__)  ];  } varname = {0, {__VA_ARGS__}}; varname.cnt < sizeof(varname.arr)/sizeof(type); ++varname.cnt )
    
    int main(void)
    {
      FOR_RANGE(int[2], k, {1,2}, {3,4}, {5,6}, {7,8})
        printf("{%d %d},\n", k.arr[k.cnt][0], k.arr[k.cnt][1]);
      return EXIT_SUCCESS;
    }

    Какая крестопараша((( В вижуальхуюдии вроде собирается, но проверить корректность работы не могу. Как вы этим днищекомпилятором вообще пользуетесь?

    Было б круто, если бы были такие constexpr функции, которые в компилтайме могут куски исходного кода высирать как бы прямо в исходник, и потом уже чтоб это компилировалось

    j123123, 29 Мая 2020

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

    +181

    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
    #include "iostream"
    using namespace std;
    
    enum {MaxFucktorial=13};
    static int fucks[MaxFucktorial+1];
    
    template<const int ValuePosition, const int Value>
    struct initFuckedValue
    {
    	enum {CurrentValue=Value*ValuePosition};
    	static void fuckUp(void)
    	{
    		fucks[ValuePosition]=CurrentValue;
    		initFuckedValue<ValuePosition+1, CurrentValue>::fuckUp();
    	};
    };
    template<const int Value>
    struct initFuckedValue<MaxFucktorial, Value>
    {
    	static void fuckUp(void){};
    };
    void InitFucks(void)
    {
    	fucks[0]=1;
    	initFuckedValue<1,1>::fuckUp();
    };
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	cout<<"Введите аргумент факториала: "<<endl;
    	InitFucks();
    	int fuckArg=0;
    	cin>>fuckArg;
    	cout<<"Начинаем считать факториал..."<<endl
    	<<"Подсчёт факториала успешно завершён. ОК."<<endl
    	<<"Результат: "<<fucks[fuckArg]<<endl;
    	cin>>fuckArg;
    	return 0;
    }

    Решил запостить всё. Жемчужена.

    Мой знакомый, молодой преподаватель-аспирант из института пришёл однажды расстроенный. Спрашиваю у него: "Что случилось?"
    -- "Один мой первокурсник, когда я дал ему задание посчитать факториал через рекурсию принёс мне какую-то непонятную компилирующуюся галиматью. И считает она уж слишком быстро... Это какая-то программа обманка. Вообщем я ему поставил 2."

    Да, это лаба. ^_^

    Говногость, 28 Июня 2011

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

    +78.4

    Анонимус-срач на говнокод.ру

    Мне немногозначно дали понять, что анонимы всех достали. Пишут в почту, в icq, в реформал и даже смски шлют.
    Проект уже вырос из того нежного возраста, когда его судьбу мог решать я сам. Посему предлагаю обсудить сложившуюся ситуацию и прийти к соглашению, выпиливать ли анонимов или оставлять.

    striker, 17 Апреля 2010

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    #define POOL_ZERO_DOWN_LEVEL_SUPPORT
    #include <wdm.h>
    
    char* p = ExAllocatePoolZero(NonPagedPool, 42, '_GK_');
    ASSERT(p[0] == 0);

    https://www.osr.com/blog/2020/07/14/bug-in-new-function-exallocatepoolzero-results-in-security-vulnerability-and-crashes/

    microsoft_real_calloc() и 100500 способов отстрела ноги с помощью него.

    bormand, 02 Декабря 2021

    Комментарии (229)
  8. bash / Говнокод #27846

    +1

    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
    ~  cat test.sh
    #!/bin/bash
    
    for i in "$@"; do
    	echo $i
    done
    
    arglist="$@"
    
    for i in $arglist; do
    	echo $i
    done
    
     ~  sh test.sh 1 2 '3 4'
    1
    2
    3 4
    1
    2
    3
    4
     ~ 

    Застрял на отладке одного скрипта, как этим правильно пользоваться?

    vistefan, 01 Декабря 2021

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    Ну я думаю все уже в курсе этой хуйни с обыском в Nginx
    Обыски, Сысоев и Коновалов были задержаны и прочая такая хуйня, традиционная для жителей РФ
    https://habr.com/ru/company/itsumma/blog/479942/
    Потом всякие набросы на всё том же хабре в духе "Я-МЫ Nginx" и так далее.

    Особенно забавно например такое:
    https://pbs.twimg.com/media/ELqxwTcXkAA04zq?format=jpg&name=large
    Социальная сеть, отжатая в результате налета на создателя силовиков большой IT-корпорацией во главе олигарха, выступает против налета силовиков на создателя веб-сервера, предпринятого в попытке отжать компанию большой IT-корпорацией во главе олигарха.

    j123123, 14 Декабря 2019

    Комментарии (229)
  10. Куча / Говнокод #28441

    −4

    1. 1
    2. 2
    3. 3
    4. 4
    Поскольку раздела по Rust нету,  о чём я сожалею, выложу тут:
    https://internals.rust-lang.org/t/subscripts-and-sizes-should-be-signed/17699/83
    
    В целом же я считаю, что несмотря на это всё, Rust классный и перспективный язык, нападки Царя сосут, но индексы должны быть знакового типа.

    TarasB, 10 Ноября 2022

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

    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
    #include <iostream>
    using namespace std;
    
    struct Rooster {
       int id = 0;
    };
    
    
    void asshole(const Rooster* roosters) {
        Rooster* r = (Rooster*)roosters;
        for (int i = 0; i < 3; i++) {
            r[i].id = i + 1;
        }
    }
    
    
    int main() {
    	Rooster roosters[3];
        asshole(roosters);
        for (int i = 0; i < 3; i++) {
            printf("%d\n", roosters[i].id);
        }
    	return 0;
    }

    https://ideone.com/Xk9Ukg

    Нахуй так жить?

    BJlADuMuPCKuu_nemyx, 22 Ноября 2019

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