aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2023-07-04 07:19:05 +0000
committerWerner Koch <[email protected]>2023-07-04 07:19:05 +0000
commit5e94470d053ec93f79acb03635e67839a5a1e6a8 (patch)
tree7c7179ba77db1163d80904eb19d6b338c810620b
parentPrepare NEWS for the next release (diff)
downloadgnupg-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.c7
-rw-r--r--common/sysutils.c5
-rw-r--r--common/sysutils.h2
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"