Browse Source

Merge topic 'curl-bug-1192'

e643e02 cmcurl: Backport curl bug 1192 fix (#14250)
Brad King 12 years ago
parent
commit
84cb494703

+ 0 - 2
Utilities/cmcurl/CMakeLists.txt

@@ -376,7 +376,6 @@ MARK_AS_ADVANCED(RANDOM_FILE)
 #sigaction \
 #signal \
 #getpass_r \
-#strlcat \
 #getpwuid \
 #geteuid \
 #dlopen \
@@ -428,7 +427,6 @@ CHECK_SYMBOL_EXISTS(closesocket   "${CURL_INCLUDES}" HAVE_CLOSESOCKET)
 CHECK_SYMBOL_EXISTS(setvbuf       "${CURL_INCLUDES}" HAVE_SETVBUF)
 CHECK_SYMBOL_EXISTS(sigsetjmp     "${CURL_INCLUDES}" HAVE_SIGSETJMP)
 CHECK_SYMBOL_EXISTS(getpass_r     "${CURL_INCLUDES}" HAVE_GETPASS_R)
-CHECK_SYMBOL_EXISTS(strlcat       "${CURL_INCLUDES}" HAVE_STRLCAT)
 CHECK_SYMBOL_EXISTS(getpwuid      "${CURL_INCLUDES}" HAVE_GETPWUID)
 CHECK_SYMBOL_EXISTS(geteuid       "${CURL_INCLUDES}" HAVE_GETEUID)
 CHECK_SYMBOL_EXISTS(utime         "${CURL_INCLUDES}" HAVE_UTIME)

+ 0 - 1
Utilities/cmcurl/Platforms/WindowsCache.cmake

@@ -76,7 +76,6 @@ IF(NOT UNIX)
     SET(HAVE_SETVBUF 0)
     SET(HAVE_SIGSETJMP 0)
     SET(HAVE_GETPASS_R 0)
-    SET(HAVE_STRLCAT 0)
     SET(HAVE_GETPWUID 0)
     SET(HAVE_GETEUID 0)
     SET(HAVE_UTIME 1)

+ 0 - 3
Utilities/cmcurl/Platforms/config-aix.h

@@ -343,9 +343,6 @@
 /* Define to 1 if you have the <string.h> header file. */
 #define HAVE_STRING_H 1
 
-/* Define to 1 if you have the `strlcat' function. */
-/* #undef HAVE_STRLCAT */
-
 /* Define to 1 if you have the `strlcpy' function. */
 /* #undef HAVE_STRLCPY */
 

+ 0 - 3
Utilities/cmcurl/config.h.in

@@ -441,9 +441,6 @@
 /* Define to 1 if you have the <string.h> header file. */
 #cmakedefine HAVE_STRING_H ${HAVE_STRING_H}
 
-/* Define to 1 if you have the `strlcat' function. */
-#cmakedefine HAVE_STRLCAT ${HAVE_STRLCAT}
-
 /* Define to 1 if you have the `strlcpy' function. */
 #cmakedefine HAVE_STRLCPY ${HAVE_STRLCPY}
 

+ 9 - 2
Utilities/cmcurl/socks.c

@@ -199,8 +199,15 @@ CURLcode Curl_SOCKS4(const char *proxy_name,
    * This is currently not supporting "Identification Protocol (RFC1413)".
    */
   socksreq[8] = 0; /* ensure empty userid is NUL-terminated */
-  if (proxy_name)
-    strlcat((char*)socksreq + 8, proxy_name, sizeof(socksreq) - 8);
+  if(proxy_name) {
+    size_t plen = strlen(proxy_name);
+    if(plen >= sizeof(socksreq) - 8) {
+      failf(data, "Too long SOCKS proxy name, can't use!\n");
+      return CURLE_COULDNT_CONNECT;
+    }
+    /* copy the proxy name WITH trailing zero */
+    memcpy(socksreq + 8, proxy_name, plen+1);
+  }
 
   /*
    * Make connection

+ 0 - 42
Utilities/cmcurl/strequal.c

@@ -99,45 +99,3 @@ char *Curl_strcasestr(const char *haystack, const char *needle)
   }
   return NULL;
 }
-
-#ifndef HAVE_STRLCAT
-/*
- * The strlcat() function appends the NUL-terminated string src to the end
- * of dst. It will append at most size - strlen(dst) - 1 bytes, NUL-termi-
- * nating the result.
- *
- * The strlcpy() and strlcat() functions return the total length of the
- * string they tried to create.  For strlcpy() that means the length of src.
- * For strlcat() that means the initial length of dst plus the length of
- * src. While this may seem somewhat confusing it was done to make trunca-
- * tion detection simple.
- *
- *
- */
-size_t Curl_strlcat(char *dst, const char *src, size_t siz)
-{
-  char *d = dst;
-  const char *s = src;
-  size_t n = siz;
-  size_t dlen;
-
-  /* Find the end of dst and adjust bytes left but don't go past end */
-  while (n-- != 0 && *d != '\0')
-    d++;
-  dlen = d - dst;
-  n = siz - dlen;
-
-  if (n == 0)
-    return(dlen + strlen(s));
-  while (*s != '\0') {
-    if (n != 1) {
-      *d++ = *s;
-      n--;
-    }
-    s++;
-  }
-  *d = '\0';
-
-  return(dlen + (s - src));     /* count does not include NUL */
-}
-#endif

+ 0 - 5
Utilities/cmcurl/strequal.h

@@ -35,9 +35,4 @@
 /* case insensitive strstr() */
 char *Curl_strcasestr(const char *haystack, const char *needle);
 
-#ifndef HAVE_STRLCAT
-#define strlcat(x,y,z) Curl_strlcat(x,y,z)
-#endif
-size_t strlcat(char *dst, const char *src, size_t siz);
-
 #endif