1
0
mirror of git://git.gnupg.org/gnupg.git synced 2025-06-15 18:41:03 +02:00

common,w32: Add missing GetLastError->errno mapping.

* common/iobuf.c (file_filter, sock_filter): Add missing mapping.
--

GnuPG-bug-id: 6528
(cherry picked from commit 5e94470d053ec93f79acb03635e67839a5a1e6a8)

Also includes commit a3be97df4ddfce008dcc6e877e9fb98c71656ec6
This commit is contained in:
Werner Koch 2023-07-04 09:19:05 +02:00
parent bb157044a0
commit 1e9ac18f88
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
3 changed files with 9 additions and 6 deletions

View File

@ -542,8 +542,8 @@ file_filter (void *opaque, int control, iobuf_t chain, byte * buf,
{ {
if (size && !WriteFile (f, p, nbytes, &n, NULL)) if (size && !WriteFile (f, p, nbytes, &n, NULL))
{ {
int ec = (int) GetLastError (); int ec = gnupg_w32_set_errno (-1);
rc = gpg_error_from_errno (ec); rc = gpg_error_from_syserror ();
log_error ("%s: write error: %s (ec=%d)\n", log_error ("%s: write error: %s (ec=%d)\n",
a->fname, gpg_strerror (rc), ec); a->fname, gpg_strerror (rc), ec);
break; break;
@ -820,7 +820,8 @@ sock_filter (void *opaque, int control, iobuf_t chain, byte * buf,
if (n == SOCKET_ERROR) if (n == SOCKET_ERROR)
{ {
int ec = (int) WSAGetLastError (); 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); log_error ("socket write error: ec=%d\n", ec);
break; break;
} }

View File

@ -319,15 +319,17 @@ map_w32_to_errno (DWORD w32_err)
#endif /*HAVE_W32_SYSTEM*/ #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 #ifdef HAVE_W32_SYSTEM
void int
gnupg_w32_set_errno (int ec) gnupg_w32_set_errno (int ec)
{ {
/* FIXME: Replace by gpgrt_w32_set_errno. */ /* FIXME: Replace by gpgrt_w32_set_errno. */
if (ec == -1) if (ec == -1)
ec = GetLastError (); ec = GetLastError ();
_set_errno (map_w32_to_errno (ec)); _set_errno (map_w32_to_errno (ec));
return ec;
} }
#endif /*HAVE_W32_SYSTEM*/ #endif /*HAVE_W32_SYSTEM*/

View File

@ -107,7 +107,7 @@ int gnupg_inotify_has_name (int fd, const char *name);
#ifdef HAVE_W32_SYSTEM #ifdef HAVE_W32_SYSTEM
void gnupg_w32_set_errno (int ec); int gnupg_w32_set_errno (int ec);
void *w32_get_user_sid (void); void *w32_get_user_sid (void);
#include "../common/w32help.h" #include "../common/w32help.h"