From e5fef6bc21c1046a8f08c27f8fcb27322d56008b Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Thu, 16 Jun 2011 20:02:46 +0000 Subject: libarchive: add 2.8.4 version This recipe has been imported from OpenEmbedded (rev 6db4b9050e0e8b963e2a6b63790e48e3042ea99e). (From OE-Core rev: 292a45064aa9926868c798341dc72f183c5de076) Signed-off-by: Otavio Salvador Signed-off-by: Richard Purdie --- .../0001-Patch-from-upstream-revision-1990.patch | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 meta/recipes-extended/libarchive/libarchive/0001-Patch-from-upstream-revision-1990.patch (limited to 'meta/recipes-extended/libarchive/libarchive/0001-Patch-from-upstream-revision-1990.patch') diff --git a/meta/recipes-extended/libarchive/libarchive/0001-Patch-from-upstream-revision-1990.patch b/meta/recipes-extended/libarchive/libarchive/0001-Patch-from-upstream-revision-1990.patch new file mode 100644 index 0000000000..f65f89f46b --- /dev/null +++ b/meta/recipes-extended/libarchive/libarchive/0001-Patch-from-upstream-revision-1990.patch @@ -0,0 +1,42 @@ +libarchive: Backport patch from upstream (revision 1990) + +Upstream-Status: Backport + +Signed-off-by: Otavio Salvador + +diff --git a/libarchive/archive_read_disk_entry_from_file.c b/libarchive/archive_read_disk_entry_from_file.c +index 7473c50..27671df 100644 +--- a/libarchive/archive_read_disk_entry_from_file.c ++++ b/libarchive/archive_read_disk_entry_from_file.c +@@ -163,15 +163,26 @@ archive_read_disk_entry_from_file(struct archive *_a, + + #ifdef HAVE_READLINK + if (S_ISLNK(st->st_mode)) { +- char linkbuffer[PATH_MAX + 1]; +- int lnklen = readlink(path, linkbuffer, PATH_MAX); ++ size_t linkbuffer_len = st->st_size + 1; ++ char *linkbuffer; ++ int lnklen; ++ ++ linkbuffer = malloc(linkbuffer_len); ++ if (linkbuffer == NULL) { ++ archive_set_error(&a->archive, ENOMEM, ++ "Couldn't read link data"); ++ return (ARCHIVE_FAILED); ++ } ++ lnklen = readlink(path, linkbuffer, linkbuffer_len); + if (lnklen < 0) { + archive_set_error(&a->archive, errno, + "Couldn't read link data"); ++ free(linkbuffer); + return (ARCHIVE_FAILED); + } + linkbuffer[lnklen] = 0; + archive_entry_set_symlink(entry, linkbuffer); ++ free(linkbuffer); + } + #endif + +-- +1.7.1 + -- cgit v1.2.3-54-g00ecf