+2003-08-13 Igor Pechtchanski <pechtcha@cs.nyu.edu>
+
+ * dump_setup.cc (check_package_files): Fix extra '/' in filename.
+ Resize command buffer. Fix buffer overflow bug.
+
2003-08-09 Igor Pechtchanski <pechtcha@cs.nyu.edu>
Christopher Faylor <cgf@redhat.com>
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))
{
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);
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] == '/')