diff options
author | Robert Yang <liezhi.yang@windriver.com> | 2012-07-04 18:16:29 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-07-09 16:58:57 +0100 |
commit | 12c8d9d4512cd9159ba862a4f7cf8608d4b57e65 (patch) | |
tree | de3d5507618956fdcfd2464428fbc2c9efae9584 /meta/recipes-devtools | |
parent | f06c1c3df0aeec4eea7697159c4954187d19ae9b (diff) | |
download | poky-12c8d9d4512cd9159ba862a4f7cf8608d4b57e65.tar.gz |
apt 0.7.14: runtime error: Method file has died unexpectedly
When the length of the tmpdir is longer than 400, there is an error
when run "apt-get update":
Method file has died unexpectedly!
This is because the "char S[1024]" is not enough for long URI, S[2048]
would be enough.
[YOCTO #2689]
(From OE-Core rev: 3ed08bd24cef39a85c528159a494e8f0dd001739)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools')
-rw-r--r-- | meta/recipes-devtools/apt/apt-0.7.14/allocate-larger-memory.patch | 75 | ||||
-rw-r--r-- | meta/recipes-devtools/apt/apt-native_0.7.14.bb | 2 | ||||
-rw-r--r-- | meta/recipes-devtools/apt/apt.inc | 1 | ||||
-rw-r--r-- | meta/recipes-devtools/apt/apt_0.7.14.bb | 2 |
4 files changed, 78 insertions, 2 deletions
diff --git a/meta/recipes-devtools/apt/apt-0.7.14/allocate-larger-memory.patch b/meta/recipes-devtools/apt/apt-0.7.14/allocate-larger-memory.patch new file mode 100644 index 0000000000..36e1499005 --- /dev/null +++ b/meta/recipes-devtools/apt/apt-0.7.14/allocate-larger-memory.patch | |||
@@ -0,0 +1,75 @@ | |||
1 | Method file has died unexpectedly | ||
2 | |||
3 | "Method file has died unexpectedly!", this is because the "char S[1024]" | ||
4 | is not enough for the long the URI, "char S[2048]" would be enough. | ||
5 | |||
6 | It would be boring if we use malloc here since we can't know how much | ||
7 | memory is needed except strelen() every component of it. So similarly | ||
8 | use "char S[2048]" as it did before. | ||
9 | |||
10 | Upstream-Status: Pending | ||
11 | Signed-off-by: Robert Yang <liezhi.yang@windriver.com> | ||
12 | --- | ||
13 | apt-pkg/acquire-method.cc | 12 ++++++------ | ||
14 | 1 file changed, 6 insertions(+), 6 deletions(-) | ||
15 | |||
16 | diff --git a/apt-pkg/acquire-method.cc b/apt-pkg/acquire-method.cc | ||
17 | --- a/apt-pkg/acquire-method.cc | ||
18 | +++ b/apt-pkg/acquire-method.cc | ||
19 | @@ -95,7 +95,7 @@ void pkgAcqMethod::Fail(string Err,bool Transient) | ||
20 | *I = ' '; | ||
21 | } | ||
22 | |||
23 | - char S[1024]; | ||
24 | + char S[2048]; | ||
25 | if (Queue != 0) | ||
26 | { | ||
27 | snprintf(S,sizeof(S)-50,"400 URI Failure\nURI: %s\n" | ||
28 | @@ -132,7 +132,7 @@ void pkgAcqMethod::URIStart(FetchResult &Res) | ||
29 | if (Queue == 0) | ||
30 | abort(); | ||
31 | |||
32 | - char S[1024] = ""; | ||
33 | + char S[2048] = ""; | ||
34 | char *End = S; | ||
35 | |||
36 | End += snprintf(S,sizeof(S),"200 URI Start\nURI: %s\n",Queue->Uri.c_str()); | ||
37 | @@ -160,7 +160,7 @@ void pkgAcqMethod::URIDone(FetchResult &Res, FetchResult *Alt) | ||
38 | if (Queue == 0) | ||
39 | abort(); | ||
40 | |||
41 | - char S[1024] = ""; | ||
42 | + char S[2048] = ""; | ||
43 | char *End = S; | ||
44 | |||
45 | End += snprintf(S,sizeof(S),"201 URI Done\nURI: %s\n",Queue->Uri.c_str()); | ||
46 | @@ -242,7 +242,7 @@ void pkgAcqMethod::URIDone(FetchResult &Res, FetchResult *Alt) | ||
47 | to be ackd */ | ||
48 | bool pkgAcqMethod::MediaFail(string Required,string Drive) | ||
49 | { | ||
50 | - char S[1024]; | ||
51 | + char S[2048]; | ||
52 | snprintf(S,sizeof(S),"403 Media Failure\nMedia: %s\nDrive: %s\n\n", | ||
53 | Required.c_str(),Drive.c_str()); | ||
54 | |||
55 | @@ -411,7 +411,7 @@ void pkgAcqMethod::Log(const char *Format,...) | ||
56 | va_start(args,Format); | ||
57 | |||
58 | // sprintf the description | ||
59 | - char S[1024]; | ||
60 | + char S[2048]; | ||
61 | unsigned int Len = snprintf(S,sizeof(S)-4,"101 Log\nURI: %s\n" | ||
62 | "Message: ",CurrentURI.c_str()); | ||
63 | |||
64 | @@ -435,7 +435,7 @@ void pkgAcqMethod::Status(const char *Format,...) | ||
65 | va_start(args,Format); | ||
66 | |||
67 | // sprintf the description | ||
68 | - char S[1024]; | ||
69 | + char S[2048]; | ||
70 | unsigned int Len = snprintf(S,sizeof(S)-4,"102 Status\nURI: %s\n" | ||
71 | "Message: ",CurrentURI.c_str()); | ||
72 | |||
73 | -- | ||
74 | 1.7.10.4 | ||
75 | |||
diff --git a/meta/recipes-devtools/apt/apt-native_0.7.14.bb b/meta/recipes-devtools/apt/apt-native_0.7.14.bb index 38e1fe6a9a..46f39f5c6c 100644 --- a/meta/recipes-devtools/apt/apt-native_0.7.14.bb +++ b/meta/recipes-devtools/apt/apt-native_0.7.14.bb | |||
@@ -1,6 +1,6 @@ | |||
1 | require apt-native.inc | 1 | require apt-native.inc |
2 | 2 | ||
3 | PR = "r9" | 3 | PR = "r10" |
4 | 4 | ||
5 | SRC_URI += "file://nodoc.patch \ | 5 | SRC_URI += "file://nodoc.patch \ |
6 | file://noconfigure.patch \ | 6 | file://noconfigure.patch \ |
diff --git a/meta/recipes-devtools/apt/apt.inc b/meta/recipes-devtools/apt/apt.inc index 563eda102d..973ccb5908 100644 --- a/meta/recipes-devtools/apt/apt.inc +++ b/meta/recipes-devtools/apt/apt.inc | |||
@@ -9,6 +9,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/a/apt/apt_${PV}.tar.gz \ | |||
9 | file://makerace.patch \ | 9 | file://makerace.patch \ |
10 | file://remove-redeclaration.patch \ | 10 | file://remove-redeclaration.patch \ |
11 | file://truncate-filename.patch \ | 11 | file://truncate-filename.patch \ |
12 | file://allocate-larger-memory.patch \ | ||
12 | " | 13 | " |
13 | 14 | ||
14 | inherit autotools gettext | 15 | inherit autotools gettext |
diff --git a/meta/recipes-devtools/apt/apt_0.7.14.bb b/meta/recipes-devtools/apt/apt_0.7.14.bb index 12dd1f2a97..667b700064 100644 --- a/meta/recipes-devtools/apt/apt_0.7.14.bb +++ b/meta/recipes-devtools/apt/apt_0.7.14.bb | |||
@@ -3,7 +3,7 @@ RDEPENDS_${PN} = "dpkg" | |||
3 | LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=0636e73ff0215e8d672dc4c32c317bb3" | 3 | LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=0636e73ff0215e8d672dc4c32c317bb3" |
4 | require apt.inc | 4 | require apt.inc |
5 | 5 | ||
6 | PR = "r14" | 6 | PR = "r15" |
7 | 7 | ||
8 | SRC_URI += "file://nodoc.patch \ | 8 | SRC_URI += "file://nodoc.patch \ |
9 | file://includes-fix.patch " | 9 | file://includes-fix.patch " |