Mailing List Archive

[PATCH] Fix signedness bug in Cygwin code
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@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

_______________________________________________
openssh-unix-dev mailing list
openssh-unix-dev@mindrot.org
https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev
Re: [PATCH] Fix signedness bug in Cygwin code [ In reply to ]
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@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
>
>
_______________________________________________
openssh-unix-dev mailing list
openssh-unix-dev@mindrot.org
https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev