diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2006-10-30 10:39:18 +0100 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2006-10-30 10:39:18 +0100 |
commit | ed94a0d6f60e7b236a3b62dd9d4d453e956cfcf9 (patch) | |
tree | fc7bc66fb12d426e396c6a3f1688883bdaf9d74f | |
parent | 18ea6d69dd43eac83f1fa1fb8ff6d3c59f3f9efb (diff) |
* apt-pkg/deb/dpkgpm.cc:
- fix segfault if dpkg sends multiline error messages
-rw-r--r-- | apt-pkg/deb/dpkgpm.cc | 19 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | debian/changelog | 9 |
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 |