[BusyBox-cvs] busybox/archival/libunarchive data_extract_all.c,1.5,1.6
Glenn McGrath
bug1 at busybox.net
Wed Dec 4 22:26:33 UTC 2002
Update of /var/cvs/busybox/archival/libunarchive
In directory winder:/tmp/cvs-serv32562/archival/libunarchive
Modified Files:
data_extract_all.c
Log Message:
Unlink before mkdir, mknod, symlink to overwrite
Index: data_extract_all.c
===================================================================
RCS file: /var/cvs/busybox/archival/libunarchive/data_extract_all.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- data_extract_all.c 3 Nov 2002 14:05:07 -0000 1.5
+++ data_extract_all.c 4 Dec 2002 22:26:30 -0000 1.6
@@ -60,6 +60,7 @@
break;
}
case S_IFDIR:
+ unlink(file_header->name);
res = mkdir(file_header->name, file_header->mode);
if ((res == -1) && !(archive_handle->flags & ARCHIVE_EXTRACT_QUIET)) {
perror_msg("extract_archive: %s", file_header->name);
@@ -67,6 +68,7 @@
break;
case S_IFLNK:
/* Symlink */
+ unlink(file_header->name);
res = symlink(file_header->link_name, file_header->name);
if ((res == -1) && !(archive_handle->flags & ARCHIVE_EXTRACT_QUIET)) {
perror_msg("Cannot create symlink from %s to '%s'", file_header->name, file_header->link_name);
@@ -76,6 +78,7 @@
case S_IFBLK:
case S_IFCHR:
case S_IFIFO:
+ unlink(file_header->name);
res = mknod(file_header->name, file_header->mode, file_header->device);
if ((res == -1) && !(archive_handle->flags & ARCHIVE_EXTRACT_QUIET)) {
perror_msg("Cannot create node %s", file_header->name);
More information about the busybox-cvs
mailing list