1
0
mirror of git://git.gnupg.org/gnupg.git synced 2025-01-03 12:11:33 +01:00

sm: Fix open_es_fread and open_es_fwrite for gnupg_fd_t.

* sm/gpgsm.c (open_es_fread, open_es_fwrite): Use gnupg_fd_t
and open_stream_nc.

--

GnuPG-bug-id: 6580
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
NIIBE Yutaka 2023-07-13 14:35:00 +09:00
parent b4246422f4
commit 9c12c2f91c
No known key found for this signature in database
GPG Key ID: 640114AF89DE6054

View File

@ -2363,7 +2363,7 @@ open_es_fread (const char *filename, const char *mode)
estream_t fp; estream_t fp;
if (filename[0] == '-' && !filename[1]) if (filename[0] == '-' && !filename[1])
fd = fileno (stdin); return es_fpopen_nc (stdin, mode);
else else
fd = gnupg_check_special_filename (filename); fd = gnupg_check_special_filename (filename);
if (fd != GNUPG_INVALID_FD) if (fd != GNUPG_INVALID_FD)
@ -2371,7 +2371,8 @@ open_es_fread (const char *filename, const char *mode)
fp = open_stream_nc (fd, mode); fp = open_stream_nc (fd, mode);
if (!fp) if (!fp)
{ {
log_error ("es_fdopen(%d) failed: %s\n", fd, strerror (errno)); log_error ("es_fdopen(%d) failed: %s\n", (int)(intptr_t)fd,
strerror (errno));
gpgsm_exit (2); gpgsm_exit (2);
} }
return fp; return fp;
@ -2393,23 +2394,24 @@ open_es_fread (const char *filename, const char *mode)
static estream_t static estream_t
open_es_fwrite (const char *filename) open_es_fwrite (const char *filename)
{ {
int fd; gnupg_fd_t fd;
estream_t fp; estream_t fp;
if (filename[0] == '-' && !filename[1]) if (filename[0] == '-' && !filename[1])
{ {
fflush (stdout); fflush (stdout);
fp = es_fdopen_nc (fileno(stdout), "wb"); fp = es_fpopen_nc (stdout, "wb");
return fp; return fp;
} }
fd = check_special_filename (filename, 1, 0); fd = gnupg_check_special_filename (filename);
if (fd != -1) if (fd != GNUPG_INVALID_FD)
{ {
fp = es_fdopen_nc (fd, "wb"); fp = open_stream_nc (fd, "wb");
if (!fp) if (!fp)
{ {
log_error ("es_fdopen(%d) failed: %s\n", fd, strerror (errno)); log_error ("es_fdopen(%d) failed: %s\n",
(int)(intptr_t)fd, strerror (errno));
gpgsm_exit (2); gpgsm_exit (2);
} }
return fp; return fp;