mirror of
https://github.com/openssl/openssl.git
synced 2025-02-23 14:42:15 +08:00
VMS open() doesn't take O_BINARY, but takes a context description
Tell open() O_BINARY on VMS doesn't make sense, as it's possible to use more precise file attributes. However, if we're still going to fdopen() it in binary mode, we must set the fd in binary context. Reviewed-by: Rich Salz <rsalz@openssl.org>
This commit is contained in:
parent
1cd5cc368f
commit
fbd03b0964
12
apps/apps.c
12
apps/apps.c
@ -2817,7 +2817,17 @@ BIO *bio_open_owner(const char *filename, int format, int private)
|
||||
#endif
|
||||
}
|
||||
|
||||
fd = open(filename, mode, 0600);
|
||||
#ifdef OPENSSL_SYS_VMS
|
||||
/* VMS doesn't have O_BINARY, it just doesn't make sense. But,
|
||||
* it still needs to know that we're going binary, or fdopen()
|
||||
* will fail with "invalid argument"... so we tell VMS what the
|
||||
* context is.
|
||||
*/
|
||||
if (!textmode)
|
||||
fd = open(filename, mode, 0600, "ctx=bin");
|
||||
else
|
||||
#endif
|
||||
fd = open(filename, mode, 0600);
|
||||
if (fd < 0)
|
||||
goto err;
|
||||
fp = fdopen(fd, modestr('w', format));
|
||||
|
Loading…
Reference in New Issue
Block a user