From 45e7da2e76d61207cb6d6a66b6dd2f501a7b49e8 Mon Sep 17 00:00:00 2001 From: briand Date: Tue, 11 Mar 2008 18:43:11 +0000 Subject: [PATCH] * cygcheck.cc (find_app_on_path): Make buffer SYMLINK_MAX + 1 chars. --- winsup/utils/ChangeLog | 5 +++++ winsup/utils/cygcheck.cc | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog index 288beafd00..428de67427 100644 --- a/winsup/utils/ChangeLog +++ b/winsup/utils/ChangeLog @@ -1,5 +1,10 @@ 2008-03-11 Brian Dessent + * cygcheck.cc (find_app_on_path): Make buffer SYMLINK_MAX + 1 + chars. + +2008-03-11 Brian Dessent + * cygcheck.cc (dirname): New static function. (find_app_on_path): Use SYMLINK_MAX. Resolve symlink relative to link's location. Adjust to the fact that cygpath already diff --git a/winsup/utils/cygcheck.cc b/winsup/utils/cygcheck.cc index e23a6858e4..4d79e3140d 100644 --- a/winsup/utils/cygcheck.cc +++ b/winsup/utils/cygcheck.cc @@ -843,7 +843,7 @@ find_app_on_path (const char *app, bool showall = false) if (is_symlink (fh)) { - static char tmp[SYMLINK_MAX]; + static char tmp[SYMLINK_MAX + 1]; if (!readlink (fh, tmp, SYMLINK_MAX)) display_error("readlink failed"); @@ -853,9 +853,9 @@ find_app_on_path (const char *app, bool showall = false) if (!strchr (ptr, '\\')) { char *lastsep; - strncpy (tmp, cygpath (papp, NULL), SYMLINK_MAX - 1); + strncpy (tmp, cygpath (papp, NULL), SYMLINK_MAX); lastsep = strrchr (tmp, '\\'); - strncpy (lastsep+1, ptr, SYMLINK_MAX - 1 - (lastsep-tmp)); + strncpy (lastsep+1, ptr, SYMLINK_MAX - (lastsep-tmp)); ptr = tmp; } if (!CloseHandle (fh)) -- 2.11.0