rpm applet by Laurence Anderson
diff --git a/archival/libunarchive/data_extract_all.c b/archival/libunarchive/data_extract_all.c
index 7ab87e7..9c4510e 100644
--- a/archival/libunarchive/data_extract_all.c
+++ b/archival/libunarchive/data_extract_all.c
@@ -43,7 +43,7 @@
 	switch(file_header->mode & S_IFMT) {
 		case S_IFREG: {
 #ifdef CONFIG_CPIO
-			if (file_header->link_name) {
+			if (file_header->link_name && file_header->size == 0) {
 				/* hard link */
 				res = link(file_header->link_name, file_header->name);
 				if ((res == -1) && !(archive_handle->flags & ARCHIVE_EXTRACT_QUIET)) {