diff options
author | Yang Tse <yangsita@gmail.com> | 2010-02-14 13:14:17 +0000 |
---|---|---|
committer | Yang Tse <yangsita@gmail.com> | 2010-02-14 13:14:17 +0000 |
commit | 68d83a8142e52643cc98d692dce54a49d9e2c386 (patch) | |
tree | 6f43b3dfcb3d2c9aa665fea513159d926339ea01 /tests/server/testpart.c | |
parent | b4ff6d3007be58423a1e6b8b8aa2e038dd1b04c0 (diff) |
Overhauled test suite getpart() function. Fixing potential out of bounds
stack and memory overwrites triggered with huge test case definitions.
Diffstat (limited to 'tests/server/testpart.c')
-rw-r--r-- | tests/server/testpart.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/tests/server/testpart.c b/tests/server/testpart.c index d2be529de..a78799ca7 100644 --- a/tests/server/testpart.c +++ b/tests/server/testpart.c @@ -35,15 +35,20 @@ int main(int argc, char **argv) { + int rc; + char *part; + size_t partlen, i; + if(argc< 3) { printf("./testpart main sub\n"); } else { - size_t size; - unsigned int i; - const char *buffer = spitout(stdin, argv[1], argv[2], &size); - for(i=0; i< size; i++) - printf("%c", buffer[i]); + rc = getpart(&part, &partlen, argv[1], argv[2], stdin); + if(rc) + return(rc); + for(i = 0; i < partlen; i++) + printf("%c", part[i]); + free(part); } return 0; } |