summaryrefslogtreecommitdiff
path: root/misc/mc/files/patch-vfs-tar.c
diff options
context:
space:
mode:
Diffstat (limited to 'misc/mc/files/patch-vfs-tar.c')
-rw-r--r--misc/mc/files/patch-vfs-tar.c49
1 files changed, 0 insertions, 49 deletions
diff --git a/misc/mc/files/patch-vfs-tar.c b/misc/mc/files/patch-vfs-tar.c
deleted file mode 100644
index bbaf9e109b84..000000000000
--- a/misc/mc/files/patch-vfs-tar.c
+++ /dev/null
@@ -1,49 +0,0 @@
---- vfs/tar.c.orig Sun Dec 8 07:12:30 2002
-+++ vfs/tar.c Tue Jun 15 03:15:09 2004
-@@ -264,19 +264,26 @@
- char *bp, *data;
- int size, written;
-
-+ if (hstat.st_size > MC_MAXPATHLEN) {
-+ message_1s (1, MSG_ERROR, _("Inconsistent tar archive"));
-+ return STATUS_BADCHECKSUM;
-+ }
-+
- longp = ((header->header.linkflag == LF_LONGNAME)
- ? &next_long_name
- : &next_long_link);
-
- if (*longp)
- g_free (*longp);
-- bp = *longp = g_malloc (hstat.st_size);
-+ bp = *longp = g_malloc (hstat.st_size + 1);
-
- for (size = hstat.st_size;
- size > 0;
- size -= written) {
- data = get_next_record (archive, tard)->charptr;
- if (data == NULL) {
-+ g_free (*longp);
-+ *longp = NULL;
- message_1s (1, MSG_ERROR, _("Unexpected EOF on archive file"));
- return STATUS_BADCHECKSUM;
- }
-@@ -287,10 +294,14 @@
- memcpy (bp, data, written);
- bp += written;
- }
--#if 0
-- if (hstat.st_size > 1)
-- bp [hstat.st_size - 1] = 0; /* just to make sure */
--#endif
-+
-+ if (bp - *longp == MC_MAXPATHLEN && bp[-1] != '\0') {
-+ g_free (*longp);
-+ *longp = NULL;
-+ message_1s (1, MSG_ERROR, _("Inconsistent tar archive"));
-+ return STATUS_BADCHECKSUM;
-+ }
-+ *bp = 0;
- goto recurse;
- } else {
- struct stat st;