diff options
author | Koen Kooi <koen@dominion.thruhere.net> | 2011-02-01 17:00:24 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-02-01 23:59:42 +0000 |
commit | 4db983142fb3a575c4a6930bbc504796cd0c86f6 (patch) | |
tree | 179bac94ed932c00881cbef167f2081c544e4b42 /meta/recipes-devtools | |
parent | e1a9c8fb0316c3461b88e37b662823167b5954cd (diff) | |
download | poky-4db983142fb3a575c4a6930bbc504796cd0c86f6.tar.gz |
opkg: Update to svn r596 to fix segfault when upgrading packages
The longlinks patch is upstream and and be removed now
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Diffstat (limited to 'meta/recipes-devtools')
-rw-r--r-- | meta/recipes-devtools/opkg/opkg/longlinksfix.patch | 92 | ||||
-rw-r--r-- | meta/recipes-devtools/opkg/opkg_svn.bb | 1 |
2 files changed, 0 insertions, 93 deletions
diff --git a/meta/recipes-devtools/opkg/opkg/longlinksfix.patch b/meta/recipes-devtools/opkg/opkg/longlinksfix.patch deleted file mode 100644 index 6908392932..0000000000 --- a/meta/recipes-devtools/opkg/opkg/longlinksfix.patch +++ /dev/null | |||
@@ -1,92 +0,0 @@ | |||
1 | If a tarball contains a long symlink (over 100 chars) in a longpath (over 100 | ||
2 | chars) then the resulting link or path can be truncated to 100 chars. | ||
3 | |||
4 | This is due to a bug where if both 'L' and 'K' entries are found in the tarball, | ||
5 | only the first one takes affect due to get_header_tar recursively calling itself. | ||
6 | To fix this, process longname and linkname at the end of the function rather | ||
7 | than the start after any subcalls have taken place. | ||
8 | |||
9 | Richard Purdie | ||
10 | 22/12/2010 | ||
11 | |||
12 | Index: trunk/libbb/unarchive.c | ||
13 | =================================================================== | ||
14 | --- trunk.orig/libbb/unarchive.c 2010-12-22 18:14:52.575074849 +0000 | ||
15 | +++ trunk/libbb/unarchive.c 2010-12-22 18:16:01.845103832 +0000 | ||
16 | @@ -506,23 +506,7 @@ | ||
17 | /* convert to type'ed variables */ | ||
18 | tar_entry = xcalloc(1, sizeof(file_header_t)); | ||
19 | |||
20 | -#ifdef CONFIG_FEATURE_TAR_GNU_EXTENSIONS | ||
21 | - if (longname) { | ||
22 | - tar_entry->name = longname; | ||
23 | - longname = NULL; | ||
24 | - } else | ||
25 | -#endif | ||
26 | - { | ||
27 | - tar_entry->name = xstrndup(tar.formated.name, 100); | ||
28 | |||
29 | - if (tar.formated.prefix[0]) { | ||
30 | - char *temp = tar_entry->name; | ||
31 | - char *prefixTemp = xstrndup(tar.formated.prefix, 155); | ||
32 | - tar_entry->name = concat_path_file(prefixTemp, temp); | ||
33 | - free(temp); | ||
34 | - free(prefixTemp); | ||
35 | - } | ||
36 | - } | ||
37 | |||
38 | // tar_entry->name = xstrdup(tar.formated.name); | ||
39 | |||
40 | @@ -535,16 +519,7 @@ | ||
41 | tar_entry->gid = strtol(tar.formated.gid, NULL, 8); | ||
42 | tar_entry->size = strtol(tar.formated.size, NULL, 8); | ||
43 | tar_entry->mtime = strtol(tar.formated.mtime, NULL, 8); | ||
44 | -#ifdef CONFIG_FEATURE_TAR_GNU_EXTENSIONS | ||
45 | - if (linkname) { | ||
46 | - tar_entry->link_name = linkname; | ||
47 | - linkname = NULL; | ||
48 | - } else | ||
49 | -#endif | ||
50 | - { | ||
51 | - tar_entry->link_name = *tar.formated.linkname != '\0' ? | ||
52 | - xstrndup(tar.formated.linkname, 100) : NULL; | ||
53 | - } | ||
54 | + | ||
55 | tar_entry->device = (strtol(tar.formated.devmajor, NULL, 8) << 8) + | ||
56 | strtol(tar.formated.devminor, NULL, 8); | ||
57 | |||
58 | @@ -611,6 +586,34 @@ | ||
59 | |||
60 | } | ||
61 | |||
62 | + | ||
63 | +#ifdef CONFIG_FEATURE_TAR_GNU_EXTENSIONS | ||
64 | + if (longname) { | ||
65 | + tar_entry->name = longname; | ||
66 | + longname = NULL; | ||
67 | + } else | ||
68 | +#endif | ||
69 | + { | ||
70 | + tar_entry->name = xstrndup(tar.formated.name, 100); | ||
71 | + | ||
72 | + if (tar.formated.prefix[0]) { | ||
73 | + char *temp = tar_entry->name; | ||
74 | + char *prefixTemp = xstrndup(tar.formated.prefix, 155); | ||
75 | + tar_entry->name = concat_path_file(prefixTemp, temp); | ||
76 | + free(temp); | ||
77 | + free(prefixTemp); | ||
78 | + } | ||
79 | + } | ||
80 | + | ||
81 | + if (linkname) { | ||
82 | + tar_entry->link_name = linkname; | ||
83 | + linkname = NULL; | ||
84 | + } else | ||
85 | + { | ||
86 | + tar_entry->link_name = *tar.formated.linkname != '\0' ? | ||
87 | + xstrndup(tar.formated.linkname, 100) : NULL; | ||
88 | + } | ||
89 | + | ||
90 | return(tar_entry); | ||
91 | } | ||
92 | |||
diff --git a/meta/recipes-devtools/opkg/opkg_svn.bb b/meta/recipes-devtools/opkg/opkg_svn.bb index 141e00db06..76ec838875 100644 --- a/meta/recipes-devtools/opkg/opkg_svn.bb +++ b/meta/recipes-devtools/opkg/opkg_svn.bb | |||
@@ -11,7 +11,6 @@ PACKAGE_ARCH_update-alternatives-cworth = "all" | |||
11 | SRC_URI = "svn://opkg.googlecode.com/svn;module=trunk;proto=http \ | 11 | SRC_URI = "svn://opkg.googlecode.com/svn;module=trunk;proto=http \ |
12 | file://add_vercmp.patch \ | 12 | file://add_vercmp.patch \ |
13 | file://headerfix.patch \ | 13 | file://headerfix.patch \ |
14 | file://longlinksfix.patch \ | ||
15 | " | 14 | " |
16 | 15 | ||
17 | S = "${WORKDIR}/trunk" | 16 | S = "${WORKDIR}/trunk" |