summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Yang <liezhi.yang@windriver.com>2012-07-04 18:16:29 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-07-09 16:58:57 +0100
commit12c8d9d4512cd9159ba862a4f7cf8608d4b57e65 (patch)
treede3d5507618956fdcfd2464428fbc2c9efae9584
parentf06c1c3df0aeec4eea7697159c4954187d19ae9b (diff)
downloadpoky-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>
-rw-r--r--meta/recipes-devtools/apt/apt-0.7.14/allocate-larger-memory.patch75
-rw-r--r--meta/recipes-devtools/apt/apt-native_0.7.14.bb2
-rw-r--r--meta/recipes-devtools/apt/apt.inc1
-rw-r--r--meta/recipes-devtools/apt/apt_0.7.14.bb2
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 @@
1Method file has died unexpectedly
2
3"Method file has died unexpectedly!", this is because the "char S[1024]"
4is not enough for the long the URI, "char S[2048]" would be enough.
5
6It would be boring if we use malloc here since we can't know how much
7memory is needed except strelen() every component of it. So similarly
8use "char S[2048]" as it did before.
9
10Upstream-Status: Pending
11Signed-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
16diff --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--
741.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 @@
1require apt-native.inc 1require apt-native.inc
2 2
3PR = "r9" 3PR = "r10"
4 4
5SRC_URI += "file://nodoc.patch \ 5SRC_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
14inherit autotools gettext 15inherit 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"
3LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=0636e73ff0215e8d672dc4c32c317bb3" 3LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=0636e73ff0215e8d672dc4c32c317bb3"
4require apt.inc 4require apt.inc
5 5
6PR = "r14" 6PR = "r15"
7 7
8SRC_URI += "file://nodoc.patch \ 8SRC_URI += "file://nodoc.patch \
9 file://includes-fix.patch " 9 file://includes-fix.patch "