support a ":" in the dpkg error output
authorMichael Vogt <michael.vogt@ubuntu.com>
Mon, 11 Aug 2008 17:40:57 +0000 (19:40 +0200)
committerMichael Vogt <michael.vogt@ubuntu.com>
Mon, 11 Aug 2008 17:40:57 +0000 (19:40 +0200)
apt-pkg/deb/dpkgpm.cc

index 0829185..8c353a9 100644 (file)
@@ -341,7 +341,7 @@ void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line)
       'processing: trigproc: trigger'
            
    */
-   char* list[5];
+   char* list[6];
    //        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
@@ -390,10 +390,10 @@ void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line)
       // urgs, sometime has ":" in its error string so that we
       // end up with the error message split between list[3]
       // and list[4], e.g. the message: 
-      // failed in buffer_write(fd) (10, ret=-1): backend dpkg-deb ...
+      // "failed in buffer_write(fd) (10, ret=-1): backend dpkg-deb ..."
       // concat them again
-      if( list[4] != NULL)
-        list[4][-1] = ':';
+      if( list[4] != NULL )
+        list[3][strlen(list[3])] = ':';
 
       status << "pmerror:" << list[1]
             << ":"  << (PackagesDone/float(PackagesTotal)*100.0)