Module Name: src Committed By: dsl Date: Fri Jul 17 22:07:36 UTC 2009
Modified Files: src/regress/lib/libc/string/strchr: strchr_test.c Log Message: Pollute the space either side of the string being compared with the test pattern. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/regress/lib/libc/string/strchr/strchr_test.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/regress/lib/libc/string/strchr/strchr_test.c diff -u src/regress/lib/libc/string/strchr/strchr_test.c:1.1 src/regress/lib/libc/string/strchr/strchr_test.c:1.2 --- src/regress/lib/libc/string/strchr/strchr_test.c:1.1 Tue Mar 15 15:57:58 2005 +++ src/regress/lib/libc/string/strchr/strchr_test.c Fri Jul 17 22:07:36 2009 @@ -29,14 +29,15 @@ #include <assert.h> #include <string.h> +extern char *xstrchr(const char *, int); void check_strchr(void); +/* try to trick the compiler */ +char * (*volatile f)((const char *, int); + void check_strchr(void) { - /* try to trick the compiler */ - char * (*f)(const char *, int) = strchr; - int a; int t; char* off; @@ -234,8 +235,16 @@ for (a = 0; a < sizeof(long); ++a) { + if (a >= 2) { + /* Put char and a \0 before the buffer */ + buf[a-1] = '/'; + buf[a-2] = '0'; + } for (t = 0; t < (sizeof(tab) / sizeof(tab[0])); ++t) { - strcpy(&buf[a], tab[t].val); + int len = strlen(tab[t].val) + 1; + memcpy(&buf[a], tab[t].val, len); + /* Put the char we are looking for after the \0 */ + buf[a + len] = '/'; off = f(&buf[a], '/'); assert((tab[t].match == 0 && off == 0) || @@ -252,6 +261,7 @@ int main(void) { + f = strchr; check_strchr(); return 0; }