X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=crypto%2Fo_str.c;h=d8516c27bbbede979a5d428fca1ec8be63765ed6;hp=b0e7524820ce4af5555f101ab7c5b00416482cf4;hb=645c694d85c8f48c74e7db8730ead874656c781e;hpb=efdb2d6c797112e58e304d3e5300f169dbb16e95 diff --git a/crypto/o_str.c b/crypto/o_str.c index b0e7524820..d8516c27bb 100644 --- a/crypto/o_str.c +++ b/crypto/o_str.c @@ -14,49 +14,6 @@ #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 -#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; @@ -241,7 +198,12 @@ char *OPENSSL_buf2hexstr(const unsigned char *buffer, long len) const unsigned char *p; int i; - if ((tmp = OPENSSL_malloc(len * 3 + 1)) == NULL) { + if (len == 0) + { + return OPENSSL_zalloc(1); + } + + if ((tmp = OPENSSL_malloc(len * 3)) == NULL) { CRYPTOerr(CRYPTO_F_OPENSSL_BUF2HEXSTR, ERR_R_MALLOC_FAILURE); return NULL; } @@ -265,7 +227,8 @@ int openssl_strerror_r(int errnum, char *buf, size_t buflen) return !strerror_s(buf, buflen, errnum); #elif defined(_GNU_SOURCE) return strerror_r(errnum, buf, buflen) != NULL; -#elif (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) +#elif (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200112L) || \ + (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE >= 600) /* * We can use "real" strerror_r. The OpenSSL version differs in that it * gives 1 on success and 0 on failure for consistency with other OpenSSL