tool: Fixed incorrect return code if password prompting runs out of memory
authorSteve Holme <steve_holme@hotmail.com>
Sun, 19 Jan 2014 16:14:09 +0000 (16:14 +0000)
committerSteve Holme <steve_holme@hotmail.com>
Sun, 19 Jan 2014 16:26:19 +0000 (16:26 +0000)
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.

src/tool_paramhlp.c
src/tool_paramhlp.h

index 86b8a1d..46e9269 100644 (file)
@@ -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)
index 24734a5..3722e93 100644 (file)
@@ -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);