Disable BIO_s_fd on CE and disable fd:N as password passing option on
authorAndy Polyakov <appro@openssl.org>
Thu, 3 Nov 2005 15:31:28 +0000 (15:31 +0000)
committerAndy Polyakov <appro@openssl.org>
Thu, 3 Nov 2005 15:31:28 +0000 (15:31 +0000)
all _WIN32 [see commentary for clarification].

apps/apps.c
crypto/bio/bss_fd.c

index a9ac9e1b6a7b4acea8f78ec2c642a983fa9a034e..827db9486cbd5e6ea60afb57f394051118d14769 100644 (file)
@@ -642,6 +642,15 @@ static char *app_get_pass(BIO *err, char *arg, int keepbio)
                                BIO_printf(err, "Can't open file %s\n", arg + 5);
                                return NULL;
                        }
+#if !defined(_WIN32)
+               /*
+                * Under _WIN32, which covers even Win64 and CE, file
+                * descriptors referenced by BIO_s_fd are not inherited
+                * by child process and therefore below is not an option.
+                * It could have been an option if bss_fd.c was operating
+                * on real Windows descriptors, such as those obtained
+                * with CreateFile.
+                */
                } else if(!strncmp(arg, "fd:", 3)) {
                        BIO *btmp;
                        i = atoi(arg + 3);
@@ -653,6 +662,7 @@ static char *app_get_pass(BIO *err, char *arg, int keepbio)
                        /* Can't do BIO_gets on an fd BIO so add a buffering BIO */
                        btmp = BIO_new(BIO_f_buffer());
                        pwdbio = BIO_push(btmp, pwdbio);
+#endif
                } else if(!strcmp(arg, "stdin")) {
                        pwdbio = BIO_new_fp(stdin, BIO_NOCLOSE);
                        if(!pwdbio) {
index 4c229bf64103258a41eb05279a80085329c57650..5786ed495b6b8948c1c694da05fc63bf57ca284d 100644 (file)
@@ -56,6 +56,8 @@
  * [including the GNU Public Licence.]
  */
 
+#if !defined(_WIN32_WCE)
+
 #include <stdio.h>
 #include <errno.h>
 #define USE_SOCKETS
@@ -292,3 +294,4 @@ int BIO_fd_non_fatal_error(int err)
                }
        return(0);
        }
+#endif