Hi,
I intend to NMU this bug since xpdf is the last package 
which is vulnerable to this poppler bug.
The attached patch fixes this issue.

It will be also archived on:
http://people.debian.org/~nion/nmu-diff/xpdf-3.02-1.1_3.02-1.2.patch

Kind regards
Nico

-- 
Nico Golde - http://ngolde.de - [EMAIL PROTECTED] - GPG: 0x73647CFF
For security reasons, all text in this mail is double-rot13 encrypted.
diff -u xpdf-3.02/debian/patches/00list xpdf-3.02/debian/patches/00list
--- xpdf-3.02/debian/patches/00list
+++ xpdf-3.02/debian/patches/00list
@@ -20,2 +20,2 @@
-# Fix CVE-2007-3387
-post-3.5.7-kdegraphics-CVE-2007-3387.diff.dpatch
+# Fix CVE-2007-3387 and CVE-2007-5049
+fix-CVE-2007-3387_CVE-2007-5049.dpatch
reverted:
--- xpdf-3.02/debian/patches/post-3.5.7-kdegraphics-CVE-2007-3387.diff.dpatch
+++ xpdf-3.02.orig/debian/patches/post-3.5.7-kdegraphics-CVE-2007-3387.diff.dpatch
@@ -1,25 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## post-3.5.7-kdegraphics-CVE-2007-3387.diff.dpatch
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Fix integer overflow in the StreamPredictor::StreamPredictor
-##     function
-
[EMAIL PROTECTED]@
-Index: kpdf/xpdf/xpdf/Stream.cc
-===================================================================
---- kpdf/xpdf/xpdf/Stream.cc	(revision 689574)
-+++ xpdf-3.02/xpdf/Stream.cc	(working copy)
-@@ -411,9 +411,9 @@ StreamPredictor::StreamPredictor(Stream 
- 
-   nVals = width * nComps;
-   if (width <= 0 || nComps <= 0 || nBits <= 0 ||
--      nComps >= INT_MAX / nBits ||
--      width >= INT_MAX / nComps / nBits ||
--      nVals * nBits + 7 < 0) {
-+      nComps > gfxColorMaxComps || nBits > 16 ||
-+      width >= INT_MAX / nComps ||
-+      nVals >= (INT_MAX - 7) / nBits) {
-     return;
-   }
-   pixBytes = (nComps * nBits + 7) >> 3;
diff -u xpdf-3.02/debian/changelog xpdf-3.02/debian/changelog
--- xpdf-3.02/debian/changelog
+++ xpdf-3.02/debian/changelog
@@ -1,3 +1,13 @@
+xpdf (3.02-1.2) unstable; urgency=high
+
+  * Non-maintainer upload by testing security team.
+  * Removed post-3.5.7-kdegraphics-CVE-2007-3387.diff.dpatch and
+    created fix-CVE-2007-3387_CVE-2007-5049.dpatch to have a fix
+    for CVE-2007-3387 and a buffer overflow in GetNextLine()
+    (CVE-2007-5049) since they are related (Closes: #443906).
+
+ -- Nico Golde <[EMAIL PROTECTED]>  Thu, 27 Sep 2007 12:05:46 +0200
+
 xpdf (3.02-1.1) unstable; urgency=high
 
   * Non-maintainer upload with permission of the maintainer
only in patch2:
unchanged:
--- xpdf-3.02.orig/debian/patches/fix-CVE-2007-3387_CVE-2007-5049.dpatch
+++ xpdf-3.02/debian/patches/fix-CVE-2007-3387_CVE-2007-5049.dpatch
@@ -0,0 +1,31 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## fix-CVE-2007-3387_CVE-2007-5049.dpatch by Nico Golde <[EMAIL PROTECTED]>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
[EMAIL PROTECTED]@
+diff -urNad xpdf-3.02~/xpdf/Stream.cc xpdf-3.02/xpdf/Stream.cc
+--- xpdf-3.02~/xpdf/Stream.cc	2007-02-27 23:05:52.000000000 +0100
++++ xpdf-3.02/xpdf/Stream.cc	2007-09-27 12:04:52.000000000 +0200
+@@ -410,15 +410,13 @@
+   ok = gFalse;
+ 
+   nVals = width * nComps;
+-  if (width <= 0 || nComps <= 0 || nBits <= 0 ||
+-      nComps >= INT_MAX / nBits ||
+-      width >= INT_MAX / nComps / nBits ||
+-      nVals * nBits + 7 < 0) {
+-    return;
+-  }
+   pixBytes = (nComps * nBits + 7) >> 3;
+   rowBytes = ((nVals * nBits + 7) >> 3) + pixBytes;
+-  if (rowBytes <= 0) {
++  if (width <= 0 || nComps <= 0 || nBits <= 0 ||
++      nComps > gfxColorMaxComps ||
++      nBits > 16 ||
++      width >= INT_MAX / nComps ||      // check for overflow in nVals 
++      nVals >= (INT_MAX - 7) / nBits) { // check for overflow in rowBytes
+     return;
+   }
+   predLine = (Guchar *)gmalloc(rowBytes);

Attachment: pgpxn8p61MRMI.pgp
Description: PGP signature

Reply via email to