Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2003-08-13 23:37:40 +0400
committerCorinna Vinschen <corinna@vinschen.de>2003-08-13 23:37:40 +0400
commite2b1a74c13df53496115dc4b0229079930e57db2 (patch)
treeddec51ef5ff0ee62cf222a149a66549b753eb6bf /winsup/utils/dump_setup.cc
parentdb979bb4cfb8aa6d35a3627dc15044a7c4528cad (diff)
* dump_setup.cc (check_package_files): Fix extra '/' in filename.
Resize command buffer. Fix buffer overflow bug.
Diffstat (limited to 'winsup/utils/dump_setup.cc')
-rw-r--r--winsup/utils/dump_setup.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/winsup/utils/dump_setup.cc b/winsup/utils/dump_setup.cc
index 2a64b9021..300caf12f 100644
--- a/winsup/utils/dump_setup.cc
+++ b/winsup/utils/dump_setup.cc
@@ -237,7 +237,7 @@ file_exists (int verbose, char *filename, const char *alt, char *package)
static bool
check_package_files (int verbose, char *package)
{
- char filelist[MAX_PATH + 1] = "/etc/setup/";
+ char filelist[MAX_PATH + 1] = "etc/setup/";
strcat (strcat (filelist, package), ".lst.gz");
if (!file_exists (false, filelist, NULL, NULL))
{
@@ -253,8 +253,8 @@ check_package_files (int verbose, char *package)
zcat = cygpath ("/bin/gzip.exe", NULL);
while (char *p = strchr (zcat, '/'))
*p = '\\';
- zcat = (char *) realloc (zcat, strlen (zcat) + sizeof (" -dc ") + 4096);
- zcat_end = strchr (strcat (zcat, " -dc "), '\0');
+ zcat = (char *) realloc (zcat, strlen (zcat) + sizeof (" -dc /") + MAX_PATH);
+ zcat_end = strchr (strcat (zcat, " -dc /"), '\0');
}
strcpy (zcat_end, filelist);
@@ -262,7 +262,7 @@ check_package_files (int verbose, char *package)
bool result = true;
char buf[MAX_PATH + 1];
- while (fgets (buf, 4096, fp))
+ while (fgets (buf, MAX_PATH, fp))
{
char *filename = strtok(buf, "\n");
if (filename[strlen (filename) - 1] == '/')