[PATCH] Fix signedness bug in Cygwin code

Damien Miller djm at mindrot.org
Fri Jan 21 09:53:25 AEDT 2022


merged - thanks again!

On Thu, 20 Jan 2022, Corinna Vinschen wrote:

> The Cygwin-specific pattern match code has a bug.  It checks
> the size_t value returned by mbstowcs for being < 0.  The right
> thing to do is to check against (size_t) -1.  Fix that.
> 
> Signed-off-by: Corinna Vinschen <vinschen at redhat.com>
> ---
>  openbsd-compat/bsd-cygwin_util.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/openbsd-compat/bsd-cygwin_util.c b/openbsd-compat/bsd-cygwin_util.c
> index 54628e2607b4..9ede21d243a2 100644
> --- a/openbsd-compat/bsd-cygwin_util.c
> +++ b/openbsd-compat/bsd-cygwin_util.c
> @@ -194,11 +194,11 @@ _match_pattern(const char *s, const char *pattern)
>  	size_t len;
>  	int ret;
>  
> -	if ((len = mbstowcs(NULL, s, 0)) < 0)
> +	if ((len = mbstowcs(NULL, s, 0)) == (size_t) -1)
>  		return 0;
>  	ws = (wchar_t *) xcalloc(len + 1, sizeof (wchar_t));
>  	mbstowcs(ws, s, len + 1);
> -	if ((len = mbstowcs(NULL, pattern, 0)) < 0)
> +	if ((len = mbstowcs(NULL, pattern, 0)) == (size_t) -1)
>  		return 0;
>  	wpattern = (wchar_t *) xcalloc(len + 1, sizeof (wchar_t));
>  	mbstowcs(wpattern, pattern, len + 1);
> -- 
> 2.33.1
> 
> 


More information about the openssh-unix-dev mailing list