aboutsummaryrefslogtreecommitdiff
path: root/tests/server/testpart.c
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2010-02-14 13:14:17 +0000
committerYang Tse <yangsita@gmail.com>2010-02-14 13:14:17 +0000
commit68d83a8142e52643cc98d692dce54a49d9e2c386 (patch)
tree6f43b3dfcb3d2c9aa665fea513159d926339ea01 /tests/server/testpart.c
parentb4ff6d3007be58423a1e6b8b8aa2e038dd1b04c0 (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.c15
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;
}