Revert "Imported Upstream version 7.53.1"
[platform/upstream/curl.git] / lib / vauth / cleartext.c
index a761ae7..4e906bc 100644 (file)
@@ -33,6 +33,8 @@
 #include "curl_md5.h"
 #include "warnless.h"
 #include "strtok.h"
+#include "strequal.h"
+#include "rawstr.h"
 #include "sendf.h"
 #include "curl_printf.h"
 
@@ -66,27 +68,16 @@ CURLcode Curl_auth_create_plain_message(struct Curl_easy *data,
   char *plainauth;
   size_t ulen;
   size_t plen;
-  size_t plainlen;
 
-  *outlen = 0;
-  *outptr = NULL;
   ulen = strlen(userp);
   plen = strlen(passwdp);
 
-  /* Compute binary message length, checking for overflows. */
-  plainlen = 2 * ulen;
-  if(plainlen < ulen)
-    return CURLE_OUT_OF_MEMORY;
-  plainlen += plen;
-  if(plainlen < plen)
-    return CURLE_OUT_OF_MEMORY;
-  plainlen += 2;
-  if(plainlen < 2)
-    return CURLE_OUT_OF_MEMORY;
-
-  plainauth = malloc(plainlen);
-  if(!plainauth)
+  plainauth = malloc(2 * ulen + plen + 2);
+  if(!plainauth) {
+    *outlen = 0;
+    *outptr = NULL;
     return CURLE_OUT_OF_MEMORY;
+  }
 
   /* Calculate the reply */
   memcpy(plainauth, userp, ulen);
@@ -96,7 +87,8 @@ CURLcode Curl_auth_create_plain_message(struct Curl_easy *data,
   memcpy(plainauth + 2 * ulen + 2, passwdp, plen);
 
   /* Base64 encode the reply */
-  result = Curl_base64_encode(data, plainauth, plainlen, outptr, outlen);
+  result = Curl_base64_encode(data, plainauth, 2 * ulen + plen + 2, outptr,
+                              outlen);
   free(plainauth);
 
   return result;