|
1 |
| -void workFunction_0(char *s) { |
| 1 | +char * strncat(char*, const char*, unsigned); |
| 2 | +unsigned strlen(const char*); |
| 3 | +void* malloc(unsigned); |
| 4 | + |
| 5 | +void strncat_test1(char *s) { |
2 | 6 | char buf[80];
|
3 |
| - strncat(buf, s, sizeof(buf)-strlen(buf)-1); // GOOD |
4 |
| - strncat(buf, s, sizeof(buf)-strlen(buf)); // BAD |
5 |
| - strncat(buf, "fix", sizeof(buf)-strlen(buf)); // BAD [NOT DETECTED] |
| 7 | + strncat(buf, s, sizeof(buf) - strlen(buf) - 1); // GOOD |
| 8 | + strncat(buf, s, sizeof(buf) - strlen(buf)); // BAD |
| 9 | + strncat(buf, "fix", sizeof(buf)-strlen(buf)); // BAD [NOT DETECTED] |
6 | 10 | }
|
7 |
| -void workFunction_1(char *s) { |
| 11 | + |
8 | 12 | #define MAX_SIZE 80
|
| 13 | + |
| 14 | +void strncat_test2(char *s) { |
9 | 15 | char buf[MAX_SIZE];
|
10 |
| - strncat(buf, s, MAX_SIZE-strlen(buf)-1); // GOOD |
11 |
| - strncat(buf, s, MAX_SIZE-strlen(buf)); // BAD |
12 |
| - strncat(buf, "fix", MAX_SIZE-strlen(buf)); // BAD [NOT DETECTED] |
| 16 | + strncat(buf, s, MAX_SIZE - strlen(buf) - 1); // GOOD |
| 17 | + strncat(buf, s, MAX_SIZE - strlen(buf)); // BAD |
| 18 | + strncat(buf, "fix", MAX_SIZE - strlen(buf)); // BAD [NOT DETECTED] |
13 | 19 | }
|
14 |
| -void workFunction_2_0(char *s) { |
15 |
| - char * buf; |
16 |
| - int len=80; |
17 |
| - buf = (char *) malloc(len); |
18 |
| - strncat(buf, s, len-strlen(buf)-1); // GOOD |
19 |
| - strncat(buf, s, len-strlen(buf)); // BAD |
20 |
| - strncat(buf, "fix", len-strlen(buf)); // BAD [NOT DETECTED] |
| 20 | + |
| 21 | +void strncat_test3(char *s) { |
| 22 | + int len = 80; |
| 23 | + char* buf = (char *) malloc(len); |
| 24 | + strncat(buf, s, len - strlen(buf) - 1); // GOOD |
| 25 | + strncat(buf, s, len - strlen(buf)); // BAD |
| 26 | + strncat(buf, "fix", len - strlen(buf)); // BAD [NOT DETECTED] |
21 | 27 | }
|
22 |
| -void workFunction_2_1(char *s) { |
23 |
| - char * buf; |
24 |
| - int len=80; |
25 |
| - buf = (char *) malloc(len+1); |
26 |
| - strncat(buf, s, len-strlen(buf)-1); // GOOD |
27 |
| - strncat(buf, s, len-strlen(buf)); // GOOD |
| 28 | + |
| 29 | +void strncat_test4(char *s) { |
| 30 | + int len = 80; |
| 31 | + char* buf = (char *) malloc(len + 1); |
| 32 | + strncat(buf, s, len - strlen(buf) - 1); // GOOD |
| 33 | + strncat(buf, s, len - strlen(buf)); // GOOD |
28 | 34 | }
|
29 | 35 |
|
30 | 36 | struct buffers
|
31 | 37 | {
|
32 |
| - unsigned char buff1[50]; |
33 |
| - unsigned char *buff2; |
| 38 | + unsigned char array[50]; |
| 39 | + unsigned char *pointer; |
34 | 40 | } globalBuff1,*globalBuff2,globalBuff1_c,*globalBuff2_c;
|
35 | 41 |
|
36 |
| - |
37 |
| -void badFunc0(){ |
| 42 | +void strlen_test1(){ |
38 | 43 | unsigned char buff1[12];
|
39 | 44 | struct buffers buffAll;
|
40 | 45 | struct buffers * buffAll1;
|
41 | 46 |
|
42 | 47 | buff1[strlen(buff1)]=0; // BAD
|
43 |
| - buffAll.buff1[strlen(buffAll.buff1)]=0; // BAD |
44 |
| - buffAll.buff2[strlen(buffAll.buff2)]=0; // BAD |
45 |
| - buffAll1->buff1[strlen(buffAll1->buff1)]=0; // BAD |
46 |
| - buffAll1->buff2[strlen(buffAll1->buff2)]=0; // BAD |
47 |
| - globalBuff1.buff1[strlen(globalBuff1.buff1)]=0; // BAD |
48 |
| - globalBuff1.buff2[strlen(globalBuff1.buff2)]=0; // BAD |
49 |
| - globalBuff2->buff1[strlen(globalBuff2->buff1)]=0; // BAD |
50 |
| - globalBuff2->buff2[strlen(globalBuff2->buff2)]=0; // BAD |
| 48 | + buffAll.array[strlen(buffAll.array)]=0; // BAD |
| 49 | + buffAll.pointer[strlen(buffAll.pointer)]=0; // BAD |
| 50 | + buffAll1->array[strlen(buffAll1->array)]=0; // BAD |
| 51 | + buffAll1->pointer[strlen(buffAll1->pointer)]=0; // BAD |
| 52 | + globalBuff1.array[strlen(globalBuff1.array)]=0; // BAD |
| 53 | + globalBuff1.pointer[strlen(globalBuff1.pointer)]=0; // BAD |
| 54 | + globalBuff2->array[strlen(globalBuff2->array)]=0; // BAD |
| 55 | + globalBuff2->pointer[strlen(globalBuff2->pointer)]=0; // BAD |
51 | 56 | }
|
52 |
| -void noBadFunc0(){ |
| 57 | + |
| 58 | +void strlen_test2(){ |
53 | 59 | unsigned char buff1[12],buff1_c[12];
|
54 | 60 | struct buffers buffAll,buffAll_c;
|
55 | 61 | struct buffers * buffAll1,*buffAll1_c;
|
56 | 62 |
|
57 | 63 | buff1[strlen(buff1_c)]=0; // GOOD
|
58 |
| - buffAll.buff1[strlen(buffAll_c.buff1)]=0; // GOOD |
59 |
| - buffAll.buff2[strlen(buffAll.buff1)]=0; // GOOD |
60 |
| - buffAll1->buff1[strlen(buffAll1_c->buff1)]=0; // GOOD |
61 |
| - buffAll1->buff2[strlen(buffAll1->buff1)]=0; // GOOD |
62 |
| - globalBuff1.buff1[strlen(globalBuff1_c.buff1)]=0; // GOOD |
63 |
| - globalBuff1.buff2[strlen(globalBuff1.buff1)]=0; // GOOD |
64 |
| - globalBuff2->buff1[strlen(globalBuff2_c->buff1)]=0; // GOOD |
65 |
| - globalBuff2->buff2[strlen(globalBuff2->buff1)]=0; // GOOD |
| 64 | + buffAll.array[strlen(buffAll_c.array)]=0; // GOOD |
| 65 | + buffAll.pointer[strlen(buffAll.array)]=0; // GOOD |
| 66 | + buffAll1->array[strlen(buffAll1_c->array)]=0; // GOOD |
| 67 | + buffAll1->pointer[strlen(buffAll1->array)]=0; // GOOD |
| 68 | + globalBuff1.array[strlen(globalBuff1_c.array)]=0; // GOOD |
| 69 | + globalBuff1.pointer[strlen(globalBuff1.array)]=0; // GOOD |
| 70 | + globalBuff2->array[strlen(globalBuff2_c->array)]=0; // GOOD |
| 71 | + globalBuff2->pointer[strlen(globalBuff2->array)]=0; // GOOD |
66 | 72 | }
|
67 |
| -void goodFunc0(){ |
| 73 | + |
| 74 | +void strlen_test3(){ |
68 | 75 | unsigned char buffer[12];
|
69 | 76 | int i;
|
70 | 77 | for(i = 0; i < 6; i++)
|
|
0 commit comments