From 4c3568bfd644e977cc6d56be6af56a29bea0cf5b Mon Sep 17 00:00:00 2001 From: Dan Fandrich Date: Tue, 6 Mar 2007 19:55:11 +0000 Subject: Fixed a couple of problems detected by valgrind in test cases 181 & 216 --- src/main.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/main.c b/src/main.c index a48be2437..fcc519245 100644 --- a/src/main.c +++ b/src/main.c @@ -787,17 +787,21 @@ static char *file2memory(FILE *file, long *size) if(file) { while((len = fread(buffer, 1, sizeof(buffer), file))) { if(string) { - newstring = realloc(string, len+stringlen); + newstring = realloc(string, len+stringlen+1); if(newstring) string = newstring; else break; /* no more strings attached! :-) */ } else - string = malloc(len); + string = malloc(len+1); memcpy(&string[stringlen], buffer, len); stringlen+=len; } + if (string) { + /* NUL terminate the buffer in case it's treated as a string later */ + string[stringlen] = 0; + } *size = stringlen; return string; } @@ -3333,7 +3337,7 @@ CURLcode _my_setopt(CURL *curl, const char *name, CURLoption tag, ...) } /* attempt to figure out if it is a string (since the tag numerical doesn't offer this info) and then output it as a string if so */ - else if(pval && isgraph(ptr[0]) && isgraph(ptr[1])) + else if(pval && isgraph(ptr[0]) && isgraph(ptr[1]) && isgraph(ptr[2])) snprintf(value, sizeof(value), "\"%s\"", (char *)ptr); else if(pval) { snprintf(value, sizeof(value), "%p", pval); -- cgit v1.2.3