Handle Visual C warning about non-standard function names.
authorRichard Levitte <levitte@openssl.org>
Wed, 25 May 2016 21:35:54 +0000 (23:35 +0200)
committerRichard Levitte <levitte@openssl.org>
Wed, 25 May 2016 22:48:23 +0000 (00:48 +0200)
Visual C version from version 2003 complain about certain function
names, for example:

    apps\apps.c(2572) : warning C4996: 'open': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _open. See online help for details.

This adds preprocessor aliases for them in e_os.h.

Additionally, crypto/conf/conf_lib.c needs to include e_os.h to catch
those aliases.

RT#4488
RT#4489

Reviewed-by: Matt Caswell <matt@openssl.org>
crypto/conf/conf_lib.c
e_os.h

index a1e42eb7c42c7f2cf73b56b8e05e4df1326630dc..c99837387eb04c870fc3e12b0e589a78773f9e41 100644 (file)
@@ -15,6 +15,7 @@
 #include <openssl/conf.h>
 #include <openssl/conf_api.h>
 #include <openssl/lhash.h>
+#include "e_os.h"
 
 static CONF_METHOD *default_CONF_method = NULL;
 
diff --git a/e_os.h b/e_os.h
index 1c4c204c9a0a35d11d5da45d8d297c796e17a820..53e0ecf800055d8408072fd151c82fc68109ea74 100644 (file)
--- a/e_os.h
+++ b/e_os.h
@@ -469,6 +469,13 @@ struct servent *PASCAL getservbyname(const char *, const char *);
 # if defined(OPENSSL_SYS_WINDOWS)
 #  define strcasecmp _stricmp
 #  define strncasecmp _strnicmp
+#  if (_MSC_VER >= 1310)
+#   define open _open
+#   define fdopen _fdopen
+#   define close _close
+#   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"