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>
This commit is contained in:
parent
f06c1c3df0
commit
12c8d9d451
|
@ -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
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
require apt-native.inc
|
||||
|
||||
PR = "r9"
|
||||
PR = "r10"
|
||||
|
||||
SRC_URI += "file://nodoc.patch \
|
||||
file://noconfigure.patch \
|
||||
|
|
|
@ -9,6 +9,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/a/apt/apt_${PV}.tar.gz \
|
|||
file://makerace.patch \
|
||||
file://remove-redeclaration.patch \
|
||||
file://truncate-filename.patch \
|
||||
file://allocate-larger-memory.patch \
|
||||
"
|
||||
|
||||
inherit autotools gettext
|
||||
|
|
|
@ -3,7 +3,7 @@ RDEPENDS_${PN} = "dpkg"
|
|||
LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=0636e73ff0215e8d672dc4c32c317bb3"
|
||||
require apt.inc
|
||||
|
||||
PR = "r14"
|
||||
PR = "r15"
|
||||
|
||||
SRC_URI += "file://nodoc.patch \
|
||||
file://includes-fix.patch "
|
||||
|
|
Loading…
Reference in New Issue