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

    −4

    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
    #include <stdlib.h>
    #include <stdio.h>
    #include <cerr.h>
    #include <bash.h>
    
    #define INFINITE ~0u
    
    int main(int argc, char *argv[]) {
        printf("Hello world!\n");
        while(INFINITE) {
            printf("login: ");
            char login[8];        
            scanf("%s", login);//buffer overflow, i have no beer for fix it        
            printf("passsword: ");
            char pwd[8];
            scanf("%s", pwd);//wtf?! beer! beer! beer!
            if(0.25 > rand() / (float)RAND_MAX) {
                 startBash(login);
            } else {
                 printf("Login is incorrect!\n");
            }
            if(0.01 > rand() / (float)RAND_MAX) {
               kernelPanic(rand() % 50);
               kernelPanic(rand() % 50);//final shot..DIE! or beer..
            }
        }
        return 0;
    }

    dm_fomenok, 26 Апреля 2017

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

    +3

    1. 1
    https://foxford.ru/wiki/informatika/tipy-tselyh-chisel-yazyka-s

    Вот такая хуйня получается, когда учебные материалы по Си пишут те, которые сами нихуя не знают Си и не читали Священный Драфт Стандарта. Сколько хуйни по ссылке вы можете найти?
    spoiler: https://habrahabr.ru/post/156593/

    j123123, 26 Апреля 2017

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

    +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
    double func_atof(char *p){
    	double	 integer = 0.0, div = 1.0 , fract = 0.0 , sign = 1.0;
       if(   *p == 45  ){sign = -1.0, *p++ ; }
    	while ( isdigit(*p)  ) { 
    		integer = ( *p++ )  +  (10.0   *   integer)  -  48.0 ; 
    		}
    	if(*p == 46  ){
    	(*p++ ) ;
    	while (  isdigit(*p) )  {
    		fract = ( *p++ )  +  (10.0   *   fract)  -  48.0  ; 
    		div *= 10;		
    		}
        }
      return    (integer  +   fract  / div )  * sign    ;
    }

    Грустно всё это.

    gne4do, 24 Апреля 2017

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

    +1004

    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
    // shit.h :
    
    #if END_SHIT == 0
    bagor++;
      #if BIT0 == 0
        #undef  BIT0
        #define BIT0 1
      #else
        #undef  BIT0
        #define BIT0 0
        #if BIT1 == 0
          #undef  BIT1
          #define BIT1 1
        #else
          #undef  BIT1
          #define BIT1 0
          #if BIT2 == 0
            #undef  BIT2
            #define BIT2 1
          #else
            #undef  BIT0
            #undef  BIT1
            #undef  BIT2
            #define END_SHIT 1
          #endif
        #endif
      #endif
      #include "shit.h"
    #endif
    
    //shit.c
    
    #include <stdio.h>
    
    int main(void) {
      int bagor = 0;
      #define BIT0 0
      #define BIT1 0
      #define BIT2 0
      #include "shit.h"
      printf("bagor = %i\n", bagor);
      return 0;
    }

    http://govnokod.ru/20947#comment348047
    CHayT 3 часа назад # 0
    > нет ни циклов, ни рекурсий

    Можно, думаю, файлы сами в себя инклудить, чем не рекурсия. Не очень понятно, что с этим делать, правда.

    -----

    Но ведь совершенно очевидно, что с этим можно делать. Очередной шедевр макроговна

    j123123, 25 Августа 2016

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

    +1999

    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
    unsigned int get_spoofed() {
        char spa[21];
        int a, b, c, d;
    
        srand(time(0));
    
        random_ct = rand();
        random_num = ((random_ct % 254) + 1);
        a = random_num;
    
        random_ct = rand();
        random_num = ((random_ct % 254) + 1);
        b = random_num;
    
        random_ct = rand();
        random_num = ((random_ct % 254) + 1);
        c = random_num;
    
        random_ct = rand();
        random_num = ((random_ct % 254) + 1);
        d = random_num;
    
        snprintf(spa, sizeof(spa), "%d.%d.%d.%d", a, b, c, d);
    
        return ((unsigned int)host2ip(spa));
    }

    Ддосбот для роутеров https://github.com/eurialo/lightaidra/blob/master/source/utils.c

    nyaknyan, 20 Августа 2016

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

    +262

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #define e if
    #define h while
    #define s return
    #define v NULL
    #define r else
    #define u case
    #define C switch
    #define D for
    #define L0 typedef
    #define L int
    L0 char S;L0 S*Z;L0 Z*U;L0 double N;
    L0 struct Q{L Z;union{N b;S c;}M;struct Q*w;struct Q*q;}Q;
    Q*K(L w){Q*n=(Q*)malloc(sizeof(Q));e(v==n)exit(1);n->Z=w;s n;}
    void A(Z g,U t){h(' '==*g)g++;*t=g;}
    Q*V(Z g,U t){Q*n=K(2);n->M.b=strtod(g,t);s n;}
    Q*I(Z g,U t){e('+'!=*g)s v;Q*n=K(1);n->M.c='+';++*t;s n;}
    Q*W(Z g,U t){e('x'!=*g)s v;Q*n=K(20);g++;e(*g<'0'||*g>'9'){n->M.b=1;*t=g;}r{n->M.b=strtod(g,t);e(*t==g)n->M.b=1;}s n;}
    Q*J(Z g,U t){Q*n,*p=v;h(*g){A(g,&g);Q*l=V(g,&g);A(g,&g);Q*m=W(g,&g);Q*o;e(v==m)o=l;r{o=K(1);o->M.c='*';o->w=l;o->q=m;}e(v==p)n=o;r{p->w=n;p->q=o;n=p;}A(g,&g);p=I(g,&g);e(v==p){*t=g;s n;}}}
    Q**E(Z g){L n=1,i;Z t=g;h(*t){e(';'==*t)n++;t++;}Q**R=(Q**)malloc((n+1)*sizeof(Q*));e(v==R)s v;D(i=0;i<n;++i){R[i]=J(g,&g);e(*g!=';'&&*g!=0)s v;e(v==R[i])s v;g++;}R[n]=v;s R;}
    N P(Q*I,N a){C(I->Z){u 1:C(I->M.c){u '+':s P(I->w,a)+P(I->q,a);u '*':s P(I->w,a)*P(I->q,a);u '/':s P(I->w,a)/P(I->q,a);u '-':s P(I->w,a)-P(I->q,a);}u 2:s I->M.b;u 20:s pow(a,I->M.b);}}
    N O(Q*I){N x=0,y=1,z=2,Z=P(I,x),X=P(I, y),H=P(I,z),j=1e-10;L i;D(i=0;i<100&&fabs(z-y)>j&&fabs(x-y)>j&&fabs(X)>j;i++){e(Z*X<0){z=y;H=X;}r e(H*X<0){x=y;Z=X;}r{N d=z-x;x=x-d;z=z+d;Z=P(I,x);X=P(I,y);}y=(z+x)/2;X=P(I,y);}s y;}
    Z B(Q**A){L n=0,i,j,d=0;D(;A[n]!=v;n++);Z M=(Z)malloc(n*10+1);e(v==M)s v;D(i=0;A[i]!=v;i++)D(j=0;j<10;j++){
      M[i*10+j-d]=(S)fmod(12.51*O(A[i])+j*17,256);
    e(!M[i*10+j-d])d++;}M[n*10-d]=0;s M;}
    L T(Z g,Z M){Z k=M;h(*g){*g++^=*k++;e(!*k)k=M;}s(0);}
    L main(void){
        Q**n=E("2.0x5+6.2x2+7;0.3x6.1+6x5+1");
        L i;
        Z k=B(n);
        S w[]={-91,-35,97,113,89,37,113,32,28,-10,124,67,93,32,123,70,63,-19,-71,-123,-114,45,109,64,96,57,13,7,-91,0};
        T(w,k);
        printf("%s\n",w);
    }

    Nastenka1998, 19 Августа 2016

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

    +261

    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
    /* load config */
            for (i = 0; ; i++) {
                    conf[0] = '\0';
                    switch (i) {
                    case 0:
                            /* ~ */
                            snprintf(conf, sizeof conf, "%s/.%s",
                                pwd->pw_dir, SWM_CONF_FILE);
                            break;
                    case 1:
                            /* global */
                            snprintf(conf, sizeof conf, "/etc/%s",
                                SWM_CONF_FILE);
                            break;
                    case 2:
                            /* ~ compat */
                            snprintf(conf, sizeof conf, "%s/.%s",
                                pwd->pw_dir, SWM_CONF_FILE_OLD);
                            break;
                    case 3:
                            /* global compat */
                            snprintf(conf, sizeof conf, "/etc/%s",
                                SWM_CONF_FILE_OLD);
                            break;
                    default:
                            goto noconfig;
                    }
    
                    if (strlen(conf) && stat(conf, &sb) != -1)
                            if (S_ISREG(sb.st_mode)) {
                                    cfile = conf;
                                    break;
                            }
            }

    Вот так spectrwm грузит конфиги.

    codemonkey, 15 Августа 2016

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

    +272

    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
    #include <math.h>
    #include <stdio.h>
    
    double  DoubleToTheInt(double base, int power) {
        return pow(base, power);
    }
    
    int main() {
        // приводим к указателю на функуцию с обратным порядком аргументов
        double (*IntPowerOfDouble)(int, double) =
            (double (*)(int, double))&DoubleToTheInt;
    
        printf("(0.99)^100: %lf \n", DoubleToTheInt(0.99, 100));
        printf("(0.99)^100: %lf \n", IntPowerOfDouble(100, 0.99));
    }

    "Изящный способ отстрелить себе ногу по самую голову."
    Утащено с Хабры.

    Vindicar, 15 Августа 2016

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

    −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
    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
    // Add a UPnP port
    bool Win32UPnPAddPort(UINT outside_port, UINT inside_port, bool udp, char *local_ip, wchar_t *description, bool remove_before_add)
    {
    	bool ret = false;
    	HRESULT hr;
    	IUPnPNAT *nat = NULL;
    	wchar_t ip_str[MAX_SIZE];
    	BSTR bstr_ip, bstr_description, bstr_protocol;
    	wchar_t *protocol_str = (udp ? L"UDP" : L"TCP");
    	// Validate arguments
    	if (outside_port == 0 || outside_port >= 65536 || inside_port == 0 || inside_port >= 65536 ||
    		IsEmptyStr(local_ip) || UniIsEmptyStr(description))
    	{
    		return false;
    	}
    
    	StrToUni(ip_str, sizeof(ip_str), local_ip);
    	bstr_ip = SysAllocString(ip_str);
    	bstr_description = SysAllocString(description);
    	bstr_protocol = SysAllocString(protocol_str);
    
    	hr = CoCreateInstance(CLSID_UPnPNAT, NULL, CLSCTX_INPROC_SERVER, IID_IUPnPNAT, (void **)&nat);
    
    	if (SUCCEEDED(hr))
    	{
    		if (nat != NULL)
    		{
    			IStaticPortMappingCollection *collection = NULL;
    			hr = nat->get_StaticPortMappingCollection(&collection);
    
    			if (SUCCEEDED(hr))
    			{
    				if (collection != NULL)
    				{
    					IStaticPortMapping *mapping = NULL;
    
    					if (remove_before_add)
    					{
    						hr = collection->Remove((long)outside_port, bstr_protocol);
    					}
    
    					hr = collection->Add((long)outside_port, bstr_protocol, (long)inside_port,
    						bstr_ip, VARIANT_TRUE, bstr_description, &mapping);
    
    					if (SUCCEEDED(hr))
    					{
    						ret = true;
    
    						if (mapping != NULL)
    						{
    							mapping->Release();
    						}
    					}
    
    					collection->Release();
    				}
    				else
    				{
    					WHERE;
    				}
    			}
    			else
    			{
    				WHERE;
    			}
    
    			nat->Release();
    		}
    		else
    		{
    			WHERE;
    		}
    	}
    	else
    	{
    		WHERE;
    	}
    
    	SysFreeString(bstr_ip);
    	SysFreeString(bstr_description);
    	SysFreeString(bstr_protocol);
    
    	return ret;
    }

    Отсюда https://github.com/SoftEtherVPN/SoftEtherVPN/blob/master/src/Cedar/Win32Com.cpp#L157
    Там еще много такого. https://github.com/SoftEtherVPN/SoftEtherVPN/blob/master/src/Cedar/Win32Com.cpp#L963 вот например тоже забавная хрень. Нашел эту штуку по ссылке с говнохабра http://habrahabr.ru/post/208782/

    j123123, 04 Января 2016

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

    +14

    1. 1
    integerValue *= 0;

    не обнулил, а на ноль умножил

    besprincypniycentner, 09 Декабря 2015

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