summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2006-10-30 10:39:18 +0100
committerMichael Vogt <michael.vogt@ubuntu.com>2006-10-30 10:39:18 +0100
commited94a0d6f60e7b236a3b62dd9d4d453e956cfcf9 (patch)
treefc7bc66fb12d426e396c6a3f1688883bdaf9d74f
parent18ea6d69dd43eac83f1fa1fb8ff6d3c59f3f9efb (diff)
* apt-pkg/deb/dpkgpm.cc:
- fix segfault if dpkg sends multiline error messages
-rw-r--r--apt-pkg/deb/dpkgpm.cc19
-rw-r--r--configure.in2
-rw-r--r--debian/changelog9
3 files changed, 22 insertions, 8 deletions
diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc
index 2b167dbf6..4c44cd01a 100644
--- a/apt-pkg/deb/dpkgpm.cc
+++ b/apt-pkg/deb/dpkgpm.cc
@@ -624,15 +624,20 @@ bool pkgDPkgPM::Go(int OutStatusFd)
*/
char* list[5];
- if(!TokSplitString(':', line, list, sizeof(list)/sizeof(list[0])))
- // FIXME: dpkg sends multiline error messages sometimes (see
- // #374195 for a example. we should support this by
- // either patching dpkg to not send multiline over the
- // statusfd or by rewriting the code here to deal with
- // it. for now we just ignore it and not crash
- continue;
+ // dpkg sends multiline error messages sometimes (see
+ // #374195 for a example. we should support this by
+ // either patching dpkg to not send multiline over the
+ // statusfd or by rewriting the code here to deal with
+ // it. for now we just ignore it and not crash
+ TokSplitString(':', line, list, sizeof(list)/sizeof(list[0]));
char *pkg = list[1];
char *action = _strstrip(list[2]);
+ if( pkg == NULL || action == NULL)
+ {
+ if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true)
+ std::clog << "ignoring line: not enough ':'" << std::endl;
+ continue;
+ }
if(strncmp(action,"error",strlen("error")) == 0)
{
diff --git a/configure.in b/configure.in
index 35d0ea5ee..81f327c37 100644
--- a/configure.in
+++ b/configure.in
@@ -18,7 +18,7 @@ AC_CONFIG_AUX_DIR(buildlib)
AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
dnl -- SET THIS TO THE RELEASE VERSION --
-AC_DEFINE_UNQUOTED(VERSION,"0.6.45.1")
+AC_DEFINE_UNQUOTED(VERSION,"0.6.46.3")
PACKAGE="apt"
AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
AC_SUBST(PACKAGE)
diff --git a/debian/changelog b/debian/changelog
index 2aa21c399..887d2f254 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+apt (0.6.46.3) unstable; urgency=low
+
+ * apt-pkg/deb/dpkgpm.cc:
+ - make progress reporting robust against multiline error
+ messages
+
+ --
+
apt (0.6.46.2) unstable; urgency=low
* Merged from Christian Perrier bzr branch:
@@ -6,6 +14,7 @@ apt (0.6.46.2) unstable; urgency=low
- cs.po: Updated. Closes: #391064
- es.po: Updated to 514t. Closes: #391661
- da.po: Updated to 514t. Closes: #391424
+
-- Michael Vogt <mvo@debian.org> Wed, 11 Oct 2006 09:03:15 +0200
apt (0.6.46.1) unstable; urgency=low