aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Holme <steve_holme@hotmail.com>2014-01-19 16:14:09 +0000
committerSteve Holme <steve_holme@hotmail.com>2014-01-19 16:26:19 +0000
commit33b8960dc88d8d0a5bfef92f891515b9a3b9727d (patch)
treed50913a1b3e78817b9e8bab8ebe8c6f3177a3449
parentde966b403a181e8a42cdef69e6b5cb52fa8f8ccf (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.c13
-rw-r--r--src/tool_paramhlp.h4
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);