From eff7cb41d1bbcef65b34d3f75307a1b4ad11c563 Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Thu, 3 Nov 2005 15:31:28 +0000 Subject: [PATCH] Disable BIO_s_fd on CE and disable fd:N as password passing option on all _WIN32 [see commentary for clarification]. --- apps/apps.c | 10 ++++++++++ crypto/bio/bss_fd.c | 3 +++ 2 files changed, 13 insertions(+) diff --git a/apps/apps.c b/apps/apps.c index a9ac9e1b6a..827db9486c 100644 --- a/apps/apps.c +++ b/apps/apps.c @@ -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) { diff --git a/crypto/bio/bss_fd.c b/crypto/bio/bss_fd.c index 4c229bf641..5786ed495b 100644 --- a/crypto/bio/bss_fd.c +++ b/crypto/bio/bss_fd.c @@ -56,6 +56,8 @@ * [including the GNU Public Licence.] */ +#if !defined(_WIN32_WCE) + #include #include #define USE_SOCKETS @@ -292,3 +294,4 @@ int BIO_fd_non_fatal_error(int err) } return(0); } +#endif -- 2.34.1