From 9ddf3e5a94b0848cdf9e6ffcc586576bb614bc13 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 25 Sep 2012 00:23:17 -0700 Subject: Tue Sep 25 00:23:14 PDT 2012 --- .../libarchive-3.0.x-fix-mtree-writer.patch | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 core/libarchive/libarchive-3.0.x-fix-mtree-writer.patch (limited to 'core/libarchive/libarchive-3.0.x-fix-mtree-writer.patch') diff --git a/core/libarchive/libarchive-3.0.x-fix-mtree-writer.patch b/core/libarchive/libarchive-3.0.x-fix-mtree-writer.patch new file mode 100644 index 000000000..dbc89686a --- /dev/null +++ b/core/libarchive/libarchive-3.0.x-fix-mtree-writer.patch @@ -0,0 +1,34 @@ +--- a/libarchive/archive_write_set_format_mtree.c ++++ b/libarchive/archive_write_set_format_mtree.c +@@ -887,6 +887,19 @@ write_entry(struct archive_write *a, struct mtree_entry *me) + + archive_string_empty(&mtree->ebuf); + str = (mtree->indent)? &mtree->ebuf : &mtree->buf; ++ ++ /* If the pathname does not have a path separator, we have to ++ * add "./" to the head of the pathename because mtree reader ++ * will suppose that it is v1(a.k.a classic) mtree format and ++ * change the directory unexpectedly and so it will make a wrong ++ * path. */ ++ if (strchr(me->pathname, '/') == NULL && ++ strcmp(me->pathname, ".") != 0) { ++ archive_strcat(str, "./"); ++ } ++ /* mtree reader does not accept an absolute path. */ ++ else if (me->pathname[0] == '/') ++ archive_strappend_char(str, '.'); + mtree_quote(str, me->pathname); + keys = get_keys(mtree, me); + if ((keys & F_NLINK) != 0 && +--- a/libarchive/test/test_read_format_mtree.c ++++ b/libarchive/test/test_read_format_mtree.c +@@ -37,7 +37,8 @@ test_read_format_mtree1(void) + * without relying on overflow. This assumes that long long + * is at least 64 bits. */ + static const long long max_int64 = ((((long long)1) << 62) - 1) + (((long long)1) << 62); +- time_t min_time, t; ++ time_t min_time; ++ volatile time_t t; + + extract_reference_file(reffile); + \ No newline at end of file -- cgit v1.2.3-54-g00ecf