aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2018-05-29 18:04:14 +0200
committerCorinna Vinschen <corinna@vinschen.de>2018-05-29 18:23:14 +0200
commit7d00a5e320db60b462be5b330fc1358f706add76 (patch)
tree7c009c31553a679baf7863f1694efab4689e1eec /winsup/cygwin
parent4a3d0a5a5d829c05868a34658eb45731dbb5112b (diff)
downloadnewlib-7d00a5e320db60b462be5b330fc1358f706add76.zip
newlib-7d00a5e320db60b462be5b330fc1358f706add76.tar.gz
newlib-7d00a5e320db60b462be5b330fc1358f706add76.tar.bz2
Cygwin: TEST only: Add a buffer underrun assertion to symlink_info::check
Thanks to Ken Harris <Ken.Harris@mathworks.com> for the diagnosis which led to a buffer underrun in this loop. Revert before release. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/path.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index a132a0a..94f4e88 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -57,6 +57,7 @@
#include <sys/param.h>
#include <sys/cygwin.h>
#include <wctype.h>
+#include <assert.h>
#include "cygerrno.h"
#include "path.h"
#include "fhandler.h"
@@ -2800,7 +2801,7 @@ restart:
if (*p != '.' && *p != ' ')
{
while (*--p != '\\')
- ;
+ assert(p >= path);
if (*++p != ' ')
p = NULL;
}