Re: [Bug] wrapper.c uses unportable unsetenv

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Junio,

On Fri, 29 Oct 2021, Junio C Hamano wrote:

> ----- >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.

Makes sense, but...

> Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx>
> ---
>  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
> 
> 
> 
> 



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux