diff options
Diffstat (limited to 'src/tool_paramhlp.c')
-rw-r--r-- | src/tool_paramhlp.c | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/src/tool_paramhlp.c b/src/tool_paramhlp.c index 85c5e79..7cddf51 100644 --- a/src/tool_paramhlp.c +++ b/src/tool_paramhlp.c @@ -73,13 +73,13 @@ ParameterError file2string(char **bufp, FILE *file) if(ptr) *ptr = '\0'; buflen = strlen(buffer); - ptr = realloc(string, stringlen+buflen+1); + ptr = realloc(string, stringlen + buflen + 1); if(!ptr) { Curl_safefree(string); return PARAM_NO_MEM; } string = ptr; - strcpy(string+stringlen, buffer); + strcpy(string + stringlen, buffer); stringlen += buflen; } } @@ -99,27 +99,27 @@ ParameterError file2memory(char **bufp, size_t *size, FILE *file) do { if(!buffer || (alloc == nused)) { /* size_t overflow detection for huge files */ - if(alloc+1 > ((size_t)-1)/2) { + if(alloc + 1 > ((size_t)-1)/2) { Curl_safefree(buffer); return PARAM_NO_MEM; } alloc *= 2; /* allocate an extra char, reserved space, for null termination */ - newbuf = realloc(buffer, alloc+1); + newbuf = realloc(buffer, alloc + 1); if(!newbuf) { Curl_safefree(buffer); return PARAM_NO_MEM; } buffer = newbuf; } - nread = fread(buffer+nused, 1, alloc-nused, file); + nread = fread(buffer + nused, 1, alloc-nused, file); nused += nread; } while(nread); /* null terminate the buffer in case it's used as a string later */ buffer[nused] = '\0'; /* free trailing slack space, if possible */ if(alloc != nused) { - newbuf = realloc(buffer, nused+1); + newbuf = realloc(buffer, nused + 1); if(!newbuf) { Curl_safefree(buffer); return PARAM_NO_MEM; @@ -242,14 +242,16 @@ static ParameterError str2double(double *val, const char *str, long max) * data. */ -ParameterError str2udouble(double *val, const char *str, long max) +ParameterError str2udouble(double *valp, const char *str, long max) { - ParameterError result = str2double(val, str, max); + double value; + ParameterError result = str2double(&value, str, max); if(result != PARAM_OK) return result; - if(*val < 0) + if(value < 0) return PARAM_NEGATIVE_NUMERIC; + *valp = value; return PARAM_OK; } @@ -334,7 +336,7 @@ long proto2num(struct OperationConfig *config, long *val, const char *str) } } - for(pp=protos; pp->name; pp++) { + for(pp = protos; pp->name; pp++) { if(curl_strequal(token, pp->name)) { switch(action) { case deny: @@ -399,10 +401,14 @@ ParameterError str2offset(curl_off_t *val, const char *str) /* offsets aren't negative, this indicates weird input */ return PARAM_NEGATIVE_NUMERIC; -#if(CURL_SIZEOF_CURL_OFF_T > CURL_SIZEOF_LONG) - *val = curlx_strtoofft(str, &endptr, 0); - if((*val == CURL_OFF_T_MAX || *val == CURL_OFF_T_MIN) && (errno == ERANGE)) - return PARAM_NUMBER_TOO_LARGE; +#if(SIZEOF_CURL_OFF_T > SIZEOF_LONG) + { + CURLofft offt = curlx_strtoofft(str, &endptr, 0, val); + if(CURL_OFFT_FLOW == offt) + return PARAM_NUMBER_TOO_LARGE; + else if(CURL_OFFT_INVAL == offt) + return PARAM_BAD_NUMERIC; + } #else errno = 0; *val = strtol(str, &endptr, 0); @@ -470,7 +476,7 @@ static CURLcode checkpasswd(const char *kind, /* for what purpose */ /* append the password separated with a colon */ passptr[userlen] = ':'; - memcpy(&passptr[userlen+1], passwd, passwdlen+1); + memcpy(&passptr[userlen + 1], passwd, passwdlen + 1); *userpwd = passptr; } |