summaryrefslogtreecommitdiff
path: root/meta/recipes-devtools/apt/apt-0.7.14
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:16 +0100
commit3ed08bd24cef39a85c528159a494e8f0dd001739 (patch)
treef5addd6a44f5a2f139095fe74eceedb54478d4e2 /meta/recipes-devtools/apt/apt-0.7.14
parent9a0c0393871eda4bbcecfdd4b595f0c1b8e42edf (diff)
downloadopenembedded-core-3ed08bd24cef39a85c528159a494e8f0dd001739.tar.gz
openembedded-core-3ed08bd24cef39a85c528159a494e8f0dd001739.tar.bz2
openembedded-core-3ed08bd24cef39a85c528159a494e8f0dd001739.zip
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] Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Diffstat (limited to 'meta/recipes-devtools/apt/apt-0.7.14')
-rw-r--r--meta/recipes-devtools/apt/apt-0.7.14/allocate-larger-memory.patch75
1 files changed, 75 insertions, 0 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 @@
+Method file has died unexpectedly
+
+"Method file has died unexpectedly!", this is because the "char S[1024]"
+is not enough for the long the URI, "char S[2048]" would be enough.
+
+It would be boring if we use malloc here since we can't know how much
+memory is needed except strelen() every component of it. So similarly
+use "char S[2048]" as it did before.
+
+Upstream-Status: Pending
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ apt-pkg/acquire-method.cc | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/apt-pkg/acquire-method.cc b/apt-pkg/acquire-method.cc
+--- a/apt-pkg/acquire-method.cc
++++ b/apt-pkg/acquire-method.cc
+@@ -95,7 +95,7 @@ void pkgAcqMethod::Fail(string Err,bool Transient)
+ *I = ' ';
+ }
+
+- char S[1024];
++ char S[2048];
+ if (Queue != 0)
+ {
+ snprintf(S,sizeof(S)-50,"400 URI Failure\nURI: %s\n"
+@@ -132,7 +132,7 @@ void pkgAcqMethod::URIStart(FetchResult &Res)
+ if (Queue == 0)
+ abort();
+
+- char S[1024] = "";
++ char S[2048] = "";
+ char *End = S;
+
+ End += snprintf(S,sizeof(S),"200 URI Start\nURI: %s\n",Queue->Uri.c_str());
+@@ -160,7 +160,7 @@ void pkgAcqMethod::URIDone(FetchResult &Res, FetchResult *Alt)
+ if (Queue == 0)
+ abort();
+
+- char S[1024] = "";
++ char S[2048] = "";
+ char *End = S;
+
+ End += snprintf(S,sizeof(S),"201 URI Done\nURI: %s\n",Queue->Uri.c_str());
+@@ -242,7 +242,7 @@ void pkgAcqMethod::URIDone(FetchResult &Res, FetchResult *Alt)
+ to be ackd */
+ bool pkgAcqMethod::MediaFail(string Required,string Drive)
+ {
+- char S[1024];
++ char S[2048];
+ snprintf(S,sizeof(S),"403 Media Failure\nMedia: %s\nDrive: %s\n\n",
+ Required.c_str(),Drive.c_str());
+
+@@ -411,7 +411,7 @@ void pkgAcqMethod::Log(const char *Format,...)
+ va_start(args,Format);
+
+ // sprintf the description
+- char S[1024];
++ char S[2048];
+ unsigned int Len = snprintf(S,sizeof(S)-4,"101 Log\nURI: %s\n"
+ "Message: ",CurrentURI.c_str());
+
+@@ -435,7 +435,7 @@ void pkgAcqMethod::Status(const char *Format,...)
+ va_start(args,Format);
+
+ // sprintf the description
+- char S[1024];
++ char S[2048];
+ unsigned int Len = snprintf(S,sizeof(S)-4,"102 Status\nURI: %s\n"
+ "Message: ",CurrentURI.c_str());
+
+--
+1.7.10.4
+