Remove internal functions OPENSSL_strcasecmp and OPENSSL_strncasecmp
authorRichard Levitte <levitte@openssl.org>
Fri, 27 May 2016 08:12:58 +0000 (10:12 +0200)
committerRichard Levitte <levitte@openssl.org>
Sat, 28 May 2016 00:15:04 +0000 (02:15 +0200)
Their only reason to exist was that they didn't exist in VMS before
version 7.0.  We do not support such old versions any more.

However, for the benefit of systems that don't get strings.h included
by string.h, we include the former in e_os.h.

RT#4458

Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
crypto/o_str.c
e_os.h
include/internal/o_str.h

index b0e7524820ce4af5555f101ab7c5b00416482cf4..29c324f4746de061a9d6b702f7130fbee479827a 100644 (file)
 #include "internal/cryptlib.h"
 #include "internal/o_str.h"
 
-#if !defined(OPENSSL_IMPLEMENTS_strncasecmp) && \
-    !defined(OPENSSL_SYS_WIN32) && !defined(OPENSSL_SYS_WINCE) && \
-    !defined(NETWARE_CLIB)
-# include <strings.h>
-#endif
-
-int OPENSSL_strncasecmp(const char *str1, const char *str2, size_t n)
-{
-#if defined(OPENSSL_IMPLEMENTS_strncasecmp)
-    while (*str1 && *str2 && n) {
-        int res = toupper(*str1) - toupper(*str2);
-        if (res)
-            return res < 0 ? -1 : 1;
-        str1++;
-        str2++;
-        n--;
-    }
-    if (n == 0)
-        return 0;
-    if (*str1)
-        return 1;
-    if (*str2)
-        return -1;
-    return 0;
-#else
-    /*
-     * Recursion hazard warning! Whenever strncasecmp is #defined as
-     * OPENSSL_strncasecmp, OPENSSL_IMPLEMENTS_strncasecmp must be defined as
-     * well.
-     */
-    return strncasecmp(str1, str2, n);
-#endif
-}
-
-int OPENSSL_strcasecmp(const char *str1, const char *str2)
-{
-#if defined(OPENSSL_IMPLEMENTS_strncasecmp)
-    return OPENSSL_strncasecmp(str1, str2, (size_t)-1);
-#else
-    return strcasecmp(str1, str2);
-#endif
-}
-
 int OPENSSL_memcmp(const void *v1, const void *v2, size_t n)
 {
     const unsigned char *c1 = v1, *c2 = v2;
diff --git a/e_os.h b/e_os.h
index 53e0ecf800055d8408072fd151c82fc68109ea74..700d7d05ce4a303847ee6f3c05aac734b7d8e7fa 100644 (file)
--- a/e_os.h
+++ b/e_os.h
@@ -476,12 +476,8 @@ struct servent *PASCAL getservbyname(const char *, const char *);
 #   define strdup _strdup
 #   define unlink _unlink
 #  endif
-# elif defined(OPENSSL_SYS_VMS)
-/* VMS below version 7.0 doesn't have strcasecmp() */
-#  include "internal/o_str.h"
-#  define strcasecmp OPENSSL_strcasecmp
-#  define strncasecmp OPENSSL_strncasecmp
-#  define OPENSSL_IMPLEMENTS_strncasecmp
+# else
+#  include <strings.h>
 # endif
 
 /* vxworks */
index c1bf7ef039f816ba3fa0bfd83f7d29119656d18f..86403c9ee2829a1dd30e21006a0fd6e2484a7173 100644 (file)
@@ -12,8 +12,6 @@
 
 # include <stddef.h>            /* to get size_t */
 
-int OPENSSL_strcasecmp(const char *str1, const char *str2);
-int OPENSSL_strncasecmp(const char *str1, const char *str2, size_t n);
 int OPENSSL_memcmp(const void *p1, const void *p2, size_t n);
 
 #endif