diff options
author | Werner Koch <[email protected]> | 2023-07-04 07:19:05 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2023-07-04 07:19:05 +0000 |
commit | 5e94470d053ec93f79acb03635e67839a5a1e6a8 (patch) | |
tree | 7c7179ba77db1163d80904eb19d6b338c810620b | |
parent | Prepare NEWS for the next release (diff) | |
download | gnupg-5e94470d053ec93f79acb03635e67839a5a1e6a8.tar.gz gnupg-5e94470d053ec93f79acb03635e67839a5a1e6a8.zip |
common,w32: Add missing GetLastError->errno mapping.
* common/iobuf.c (file_filter, sock_filter): Add missing mapping.
--
GnuPG-bug-id: 6528
-rw-r--r-- | common/iobuf.c | 7 | ||||
-rw-r--r-- | common/sysutils.c | 5 | ||||
-rw-r--r-- | common/sysutils.h | 2 |
3 files changed, 8 insertions, 6 deletions
diff --git a/common/iobuf.c b/common/iobuf.c index 627d33900..161769a35 100644 --- a/common/iobuf.c +++ b/common/iobuf.c @@ -572,8 +572,8 @@ file_filter (void *opaque, int control, iobuf_t chain, byte * buf, { if (size && !WriteFile (f, p, nbytes, &n, NULL)) { - int ec = (int) GetLastError (); - rc = gpg_error_from_errno (ec); + int ec = gnupg_w32_set_errno (-1); + rc = gpg_error_from_syserror (); log_error ("%s: write error: %s (ec=%d)\n", a->fname, gpg_strerror (rc), ec); break; @@ -884,7 +884,8 @@ sock_filter (void *opaque, int control, iobuf_t chain, byte * buf, if (n == SOCKET_ERROR) { int ec = (int) WSAGetLastError (); - rc = gpg_error_from_errno (ec); + gnupg_w32_set_errno (ec); + rc = gpg_error_from_syserror (); log_error ("socket write error: ec=%d\n", ec); break; } diff --git a/common/sysutils.c b/common/sysutils.c index 231565177..f8e6d86fc 100644 --- a/common/sysutils.c +++ b/common/sysutils.c @@ -327,9 +327,10 @@ map_w32_to_errno (DWORD w32_err) #endif /*HAVE_W32_SYSTEM*/ -/* Set ERRNO from the Windows error. EC may be -1 to use the last error. */ +/* Set ERRNO from the Windows error. EC may be -1 to use the last + * error. Returns the Windows error code. */ #ifdef HAVE_W32_SYSTEM -void +int gnupg_w32_set_errno (int ec) { /* FIXME: Replace by gpgrt_w32_set_errno. */ diff --git a/common/sysutils.h b/common/sysutils.h index 7063da067..a78a81c64 100644 --- a/common/sysutils.h +++ b/common/sysutils.h @@ -110,7 +110,7 @@ int gnupg_inotify_has_name (int fd, const char *name); #ifdef HAVE_W32_SYSTEM -void gnupg_w32_set_errno (int ec); +int gnupg_w32_set_errno (int ec); void *w32_get_user_sid (void); #include "../common/w32help.h" |