w32: Also use _putenv_s for gnupg_unsetenv.

* common/sysutils.c (gnupg_setenv): Only enable use of _putenv_s with
Security Feature in the CRT.
(gnupg_unsetenv): Use _putenv_s when available.

--

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
NIIBE Yutaka 2023-05-16 19:11:16 +09:00
parent 86cdb49097
commit d221062769
No known key found for this signature in database
GPG Key ID: 640114AF89DE6054
1 changed files with 13 additions and 1 deletions

View File

@ -1148,7 +1148,7 @@ gnupg_setenv (const char *name, const char *value, int overwrite)
return setenv (name, value, overwrite);
#else /*!HAVE_SETENV*/
if (! getenv (name) || overwrite)
#ifdef HAVE_W32_SYSTEM
#if defined(HAVE_W32_SYSTEM) && defined(_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES)
{
int e = _putenv_s (name, value);
@ -1203,6 +1203,18 @@ gnupg_unsetenv (const char *name)
#ifdef HAVE_UNSETENV
return unsetenv (name);
#elif defined(HAVE_W32_SYSTEM) && defined(_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES)
{
int e = _putenv_s (name, "");
if (e)
{
gpg_err_set_errno (e);
return -1;
}
else
return 0;
}
#else /*!HAVE_UNSETENV*/
{
char *buf;