Re: [Bug] wrapper.c uses unportable unsetenv
Hi Junio,
On Fri, 29 Oct 2021, Junio C Hamano wrote:
Show 9 quoted lines
> ----- >8 --------- >8 --------- >8 --------- >8 --------- >8 -----
> Subject: unsetenv(3) returns int, not void
>
> This compatilibity implementation has been returning a wrong type,
> ever since 731043fd (Add compat/unsetenv.c ., 2006-01-25) added to
> the system, yet nobody noticed it in the past 16 years, presumably
> because no code checks failures in their unsetenv() calls. Sigh.
>
> For now, make it always succeed.
Show 18 quoted lines
> Signed-off-by: Junio C Hamano <gitster@pobox.com>
> ---
> compat/unsetenv.c | 2 +-
> git-compat-util.h | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git c/compat/unsetenv.c w/compat/unsetenv.c
> index bf5fd7063b..46d49c2c5e 100644
> --- c/compat/unsetenv.c
> +++ w/compat/unsetenv.c
> @@ -1,6 +1,6 @@
> #include "../git-compat-util.h"
>
> -void gitunsetenv (const char *name)
> +int gitunsetenv(const char *name)
> {
> #if !defined(__MINGW32__)
> extern char **environ;... but we are missing this:
@@ -24,4 +24,5 @@ void gitunsetenv (const char *name)
++dst;
}
environ[dst] = NULL;
+ return 0;
}
Thanks,
Dscho
> diff --git c/git-compat-util.h w/git-compat-util.h
> index b46605300a..0f7e369a5d 100644
> --- c/git-compat-util.h
> +++ w/git-compat-util.h
> @@ -726,7 +726,7 @@ char *gitmkdtemp(char *);
>
> #ifdef NO_UNSETENV
> #define unsetenv gitunsetenv
> -void gitunsetenv(const char *);
> +int gitunsetenv(const char *);
> #endif
>
> #ifdef NO_STRCASESTR
>
>
>
>