Make sure strdup() is properly declared.
[openssl.git] / crypto / ui / ui_lib.c
index 132236f..c5d1704 100644 (file)
  *
  */
 
+#include <openssl/e_os2.h>
+/* The following defines enable the declaration of strdup(), which is an
+   extended function according to X/Open. */
+#ifdef OPENSSL_SYS_VMS_DECC
+# define _XOPEN_SOURCE_EXTENDED
+#endif
+#ifdef OPENSSL_SYS_UNIX
+# define __USE_XOPEN_EXTENDED  /* For Linux and probably anything GNU */
+#endif
 #include <string.h>
 
 #include <openssl/ui.h>
@@ -92,9 +101,8 @@ UI *UI_new_method(const UI_METHOD *method)
        return ret;
        }
 
-static void free_string(void *data)
+static void free_string(UI_STRING *uis)
        {
-       UI_STRING *uis = (UI_STRING *)data;
        if (uis->flags & OUT_STRING_FREEABLE)
                OPENSSL_free((char *)uis->out_string);
        OPENSSL_free(uis);