This is the mail archive of the
cygwin-cvs@cygwin.com
mailing list for the Cygwin project.
[newlib-cygwin] cygcheck: Fix broken test for invalid wcstombs conversion reading symlinks
- From: Corinna Vinschen <corinna at sourceware dot org>
- To: cygwin-cvs at sourceware dot org
- Date: 22 Oct 2016 20:54:15 -0000
- Subject: [newlib-cygwin] cygcheck: Fix broken test for invalid wcstombs conversion reading symlinks
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=bbeef8ef3fc017dc7a1e042c3b0e2456dcc8b51f
commit bbeef8ef3fc017dc7a1e042c3b0e2456dcc8b51f
Author: Corinna Vinschen <corinna@vinschen.de>
Date: Sat Oct 22 22:53:29 2016 +0200
cygcheck: Fix broken test for invalid wcstombs conversion reading symlinks
Fixes Coverity CID 66905
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diff:
---
winsup/utils/path.cc | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/winsup/utils/path.cc b/winsup/utils/path.cc
index 336408d..a76cf76 100644
--- a/winsup/utils/path.cc
+++ b/winsup/utils/path.cc
@@ -220,10 +220,10 @@ readlink (HANDLE fh, char *path, int maxlen)
}
if (*(PWCHAR) cp == 0xfeff) /* BOM */
{
- len = wcstombs (NULL, (wchar_t *) (cp + 2), 0);
- if (len == (size_t) -1 || len + 1 > maxlen)
+ size_t wlen = wcstombs (NULL, (wchar_t *) (cp + 2), 0);
+ if (wlen == (size_t) -1 || wlen + 1 > maxlen)
return false;
- wcstombs (path, (wchar_t *) (cp + 2), len + 1);
+ wcstombs (path, (wchar_t *) (cp + 2), wlen + 1);
}
else if (len + 1 > maxlen)
return false;
@@ -238,10 +238,10 @@ readlink (HANDLE fh, char *path, int maxlen)
cp = buf + strlen (SYMLINK_COOKIE);
if (*(PWCHAR) cp == 0xfeff) /* BOM */
{
- len = wcstombs (NULL, (wchar_t *) (cp + 2), 0);
- if (len == (size_t) -1 || len + 1 > maxlen)
+ size_t wlen = wcstombs (NULL, (wchar_t *) (cp + 2), 0);
+ if (wlen == (size_t) -1 || wlen + 1 > maxlen)
return false;
- wcstombs (path, (wchar_t *) (cp + 2), len + 1);
+ wcstombs (path, (wchar_t *) (cp + 2), wlen + 1);
}
else if (fi.nFileSizeLow - strlen (SYMLINK_COOKIE) > (unsigned) maxlen)
return false;