[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