mirror of
https://github.com/mirror/tinycc.git
synced 2026-08-22 11:23:27 +08:00
Add strncat and strrchr to bounds checking
This commit is contained in:
@@ -156,8 +156,18 @@ int main()
|
||||
#elif defined test_bcheck_125
|
||||
strcat(&a[3], &a[0]);
|
||||
#elif defined test_bcheck_126
|
||||
strchr(&b[0], 'a');
|
||||
strncat(&a[7], &a[0], 3);
|
||||
#elif defined test_bcheck_127
|
||||
strncat(&a[0], &b[3], 8);
|
||||
#elif defined test_bcheck_128
|
||||
strncat(&a[0], &a[4], 3);
|
||||
#elif defined test_bcheck_129
|
||||
strncat(&a[3], &a[0], 10);
|
||||
#elif defined test_bcheck_130
|
||||
strchr(&b[0], 'a');
|
||||
#elif defined test_bcheck_131
|
||||
strrchr(&b[0], 'a');
|
||||
#elif defined test_bcheck_132
|
||||
free(strdup(&b[0]));
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -134,9 +134,29 @@
|
||||
[returns 255]
|
||||
|
||||
[test_bcheck_126]
|
||||
112_backtrace.c:159: at main: BCHECK: invalid pointer ........, size 0x? in strchr
|
||||
112_backtrace.c:159: at main: BCHECK: invalid pointer ........, size 0x? in strncat dest
|
||||
[returns 255]
|
||||
|
||||
[test_bcheck_127]
|
||||
112_backtrace.c:161: at main: BCHECK: invalid pointer ........, size 0x? in strdup
|
||||
112_backtrace.c:161: at main: BCHECK: invalid pointer ........, size 0x? in strncat dest
|
||||
[returns 255]
|
||||
|
||||
[test_bcheck_128]
|
||||
112_backtrace.c:163: at main: BCHECK: overlapping regions ........(0x?), ........(0x?) in strncat
|
||||
[returns 255]
|
||||
|
||||
[test_bcheck_129]
|
||||
112_backtrace.c:165: at main: BCHECK: overlapping regions ........(0x?), ........(0x?) in strncat
|
||||
[returns 255]
|
||||
|
||||
[test_bcheck_130]
|
||||
112_backtrace.c:167: at main: BCHECK: invalid pointer ........, size 0x? in strchr
|
||||
[returns 255]
|
||||
|
||||
[test_bcheck_131]
|
||||
112_backtrace.c:169: at main: BCHECK: invalid pointer ........, size 0x? in strrchr
|
||||
[returns 255]
|
||||
|
||||
[test_bcheck_132]
|
||||
112_backtrace.c:171: at main: BCHECK: invalid pointer ........, size 0x? in strdup
|
||||
[returns 255]
|
||||
|
||||
@@ -60,12 +60,20 @@ main (void)
|
||||
r = (__builtin_memcmp (p, str, sizeof(str)));
|
||||
printf(" 11:%d", !r);
|
||||
|
||||
r = (__builtin_strchr(p, 'z') != &p[25]);
|
||||
tmp[0] = '\0';
|
||||
p = __builtin_strncat(tmp, str, __builtin_strlen(str));
|
||||
r = (__builtin_memcmp (p, str, sizeof(str)));
|
||||
printf(" 12:%d", !r);
|
||||
|
||||
r = (__builtin_strchr(p, 'z') != &p[25]);
|
||||
printf(" 13:%d", !r);
|
||||
|
||||
r = (__builtin_strrchr(p, 'z') != &p[25]);
|
||||
printf(" 14:%d", !r);
|
||||
|
||||
p = __builtin_strdup (str);
|
||||
r = (__builtin_memcmp (p, str, sizeof(str)));
|
||||
printf(" 13:%d", !r);
|
||||
printf(" 15:%d", !r);
|
||||
__builtin_free(p);
|
||||
|
||||
p = __builtin_malloc (100);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
BOUNDS OFF:
|
||||
1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1
|
||||
1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1 14:1 15:1
|
||||
BOUNDS ON:
|
||||
1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1
|
||||
1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1 14:1 15:1
|
||||
|
||||
Reference in New Issue
Block a user