[Xfce4-commits] r22841 - xarchiver/branches/xarchiver-psybsd/libxarchiver
Stephan Arts
stephan at xfce.org
Sun Aug 20 22:38:03 UTC 2006
Author: stephan
Date: 2006-08-20 22:38:03 +0000 (Sun, 20 Aug 2006)
New Revision: 22841
Modified:
xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c
xarchiver/branches/xarchiver-psybsd/libxarchiver/internals.c
Log:
fixed invalid free when extracting entire archive
Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c 2006-08-20 22:03:24 UTC (rev 22840)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c 2006-08-20 22:38:03 UTC (rev 22841)
@@ -211,6 +211,7 @@
gint
lxa_archive_support_gnu_tar_extract(LXAArchive *archive, gchar *dest_path, GSList *filenames)
{
+ gchar *command = NULL;
if(!LXA_IS_ARCHIVE_SUPPORT_GNU_TAR(archive->support))
{
g_critical("Support is not GNU TAR");
@@ -223,7 +224,6 @@
}
else
{
- gchar *command = NULL;
archive->files = lxa_concat_filenames(filenames);
lxa_archive_set_status(archive, LXA_ARCHIVESTATUS_EXTRACT);
if(g_file_test(archive->path, G_FILE_TEST_EXISTS))
@@ -265,6 +265,7 @@
if(command)
{
lxa_execute(command, archive, NULL, NULL, NULL, NULL);
+ g_debug("Extracting archive '%s' to '%s'", archive->path, dest_path);
g_free(command);
}
}
Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/internals.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/internals.c 2006-08-20 22:03:24 UTC (rev 22840)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/internals.c 2006-08-20 22:38:03 UTC (rev 22841)
@@ -35,7 +35,10 @@
archive->child_pid = 0;
lxa_archive_set_status(archive, LXA_ARCHIVESTATUS_IDLE);
if(archive->files)
+ {
g_free(archive->files);
+ archive->files = NULL;
+ }
}
gint
@@ -126,6 +129,8 @@
}
_filenames = _filenames->next;
}
+ if(!filenames)
+ return NULL;
return concat_str;
}
More information about the Xfce4-commits
mailing list