diff options
author | Steve Holme <steve_holme@hotmail.com> | 2014-01-19 16:14:09 +0000 |
---|---|---|
committer | Steve Holme <steve_holme@hotmail.com> | 2014-01-19 16:26:19 +0000 |
commit | 33b8960dc88d8d0a5bfef92f891515b9a3b9727d (patch) | |
tree | d50913a1b3e78817b9e8bab8ebe8c6f3177a3449 | |
parent | de966b403a181e8a42cdef69e6b5cb52fa8f8ccf (diff) |
tool: Fixed incorrect return code if password prompting runs out of memory
Due to the changes in commit 3c929ff9f6ea and lack of subsequent
updates, curl could return a CURLE_FTP_ACCEPT_FAILED error if
checkpasswd() ran out of memory in versions 7.33.0 and 7.34.0.
Updated the function declaration and return code to return
CURLE_OUT_OF_MEMORY and CURLE_OK where appropriate.
-rw-r--r-- | src/tool_paramhlp.c | 13 | ||||
-rw-r--r-- | src/tool_paramhlp.h | 4 |
2 files changed, 9 insertions, 8 deletions
diff --git a/src/tool_paramhlp.c b/src/tool_paramhlp.c index 86b8a1df5..46e926952 100644 --- a/src/tool_paramhlp.c +++ b/src/tool_paramhlp.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -365,14 +365,14 @@ ParameterError str2offset(curl_off_t *val, const char *str) return PARAM_BAD_NUMERIC; } -ParameterError checkpasswd(const char *kind, /* for what purpose */ - char **userpwd) /* pointer to allocated string */ +CURLcode checkpasswd(const char *kind, /* for what purpose */ + char **userpwd) /* pointer to allocated string */ { char *psep; char *osep; if(!*userpwd) - return PARAM_OK; + return CURLE_OK; /* Attempt to find the password separator */ psep = strchr(*userpwd, ':'); @@ -408,14 +408,15 @@ ParameterError checkpasswd(const char *kind, /* for what purpose */ passwdlen + 1 + /* an extra for the colon */ userlen + 1); /* an extra for the zero */ if(!passptr) - return PARAM_NO_MEM; + return CURLE_OUT_OF_MEMORY; /* append the password separated with a colon */ passptr[userlen] = ':'; memcpy(&passptr[userlen+1], passwd, passwdlen+1); *userpwd = passptr; } - return PARAM_OK; + + return CURLE_OK; } ParameterError add2list(struct curl_slist **list, const char *ptr) diff --git a/src/tool_paramhlp.h b/src/tool_paramhlp.h index 24734a520..3722e9375 100644 --- a/src/tool_paramhlp.h +++ b/src/tool_paramhlp.h @@ -7,7 +7,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -40,7 +40,7 @@ long proto2num(struct Configurable *config, long *val, const char *str); ParameterError str2offset(curl_off_t *val, const char *str); -ParameterError checkpasswd(const char *kind, char **userpwd); +CURLcode checkpasswd(const char *kind, char **userpwd); ParameterError add2list(struct curl_slist **list, const char *ptr); |