From: Richard Levitte Date: Thu, 8 Sep 2016 21:39:26 +0000 (+0200) Subject: If errno is ENXIO in BSS_new_file(), set BIO_R_NO_SUCH_FILE X-Git-Tag: OpenSSL_1_1_0a~69 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=0adfd49e47b08df699c941efef01b88d12b4a060;p=oweals%2Fopenssl.git If errno is ENXIO in BSS_new_file(), set BIO_R_NO_SUCH_FILE VMS sets that errno when the device part of a file spec is malformed or a logical name that doesn't exist. Reviewed-by: Rich Salz (cherry picked from commit e82e2186e93e9a678dd8c0c5ba084d21d27d4d62) --- diff --git a/crypto/bio/bss_file.c b/crypto/bio/bss_file.c index 4f79c32bbb..6af2d9cb87 100644 --- a/crypto/bio/bss_file.c +++ b/crypto/bio/bss_file.c @@ -73,7 +73,11 @@ BIO *BIO_new_file(const char *filename, const char *mode) if (file == NULL) { SYSerr(SYS_F_FOPEN, get_last_sys_error()); ERR_add_error_data(5, "fopen('", filename, "','", mode, "')"); - if (errno == ENOENT) + if (errno == ENOENT +# ifdef ENXIO + || errno == ENXIO +# endif + ) BIOerr(BIO_F_BIO_NEW_FILE, BIO_R_NO_SUCH_FILE); else BIOerr(BIO_F_BIO_NEW_FILE, ERR_R_SYS_LIB);