mirror of
https://git.freebsd.org/ports.git
synced 2025-07-18 17:59:20 -04:00
Fix buffer overflow vulnerability in xpdf code.
Security: http://www.kde.org/info/security/advisory-20070730-1.txt Security: CVE-2007-3387
This commit is contained in:
parent
a8f26cf252
commit
b09d5e70f1
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=196764
10 changed files with 99 additions and 3 deletions
|
@ -7,7 +7,7 @@
|
|||
|
||||
PORTNAME= koffice
|
||||
PORTVERSION= 1.6.3
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
PORTEPOCH= 2
|
||||
CATEGORIES= editors kde
|
||||
MASTER_SITES= ${MASTER_SITE_KDE}
|
||||
|
|
20
editors/calligra/files/patch-koffice-xpdf-CVE-2007-3387.diff
Normal file
20
editors/calligra/files/patch-koffice-xpdf-CVE-2007-3387.diff
Normal file
|
@ -0,0 +1,20 @@
|
|||
--- filters/kword/pdf/xpdf/xpdf/Stream.cc
|
||||
+++ filters/kword/pdf/xpdf/xpdf/Stream.cc
|
||||
@@ -413,13 +413,11 @@ StreamPredictor::StreamPredictor(Stream
|
||||
predLine = NULL;
|
||||
ok = gFalse;
|
||||
|
||||
- if (width <= 0 || nComps <= 0 || nBits <= 0 ||
|
||||
- nComps >= INT_MAX / nBits ||
|
||||
- width >= INT_MAX / nComps / nBits)
|
||||
- return;
|
||||
-
|
||||
nVals = width * nComps;
|
||||
- if (nVals * nBits + 7 <= 0)
|
||||
+ if (width <= 0 || nComps <= 0 || nBits <= 0 ||
|
||||
+ nComps >= 4 || nBits > 16 ||
|
||||
+ width >= INT_MAX / nComps ||
|
||||
+ nVals >= (INT_MAX - 7) / nBits)
|
||||
return;
|
||||
|
||||
pixBytes = (nComps * nBits + 7) >> 3;
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
PORTNAME= koffice
|
||||
PORTVERSION= 1.6.3
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
PORTEPOCH= 2
|
||||
CATEGORIES= editors kde
|
||||
MASTER_SITES= ${MASTER_SITE_KDE}
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
--- filters/kword/pdf/xpdf/xpdf/Stream.cc
|
||||
+++ filters/kword/pdf/xpdf/xpdf/Stream.cc
|
||||
@@ -413,13 +413,11 @@ StreamPredictor::StreamPredictor(Stream
|
||||
predLine = NULL;
|
||||
ok = gFalse;
|
||||
|
||||
- if (width <= 0 || nComps <= 0 || nBits <= 0 ||
|
||||
- nComps >= INT_MAX / nBits ||
|
||||
- width >= INT_MAX / nComps / nBits)
|
||||
- return;
|
||||
-
|
||||
nVals = width * nComps;
|
||||
- if (nVals * nBits + 7 <= 0)
|
||||
+ if (width <= 0 || nComps <= 0 || nBits <= 0 ||
|
||||
+ nComps >= 4 || nBits > 16 ||
|
||||
+ width >= INT_MAX / nComps ||
|
||||
+ nVals >= (INT_MAX - 7) / nBits)
|
||||
return;
|
||||
|
||||
pixBytes = (nComps * nBits + 7) >> 3;
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
PORTNAME= koffice
|
||||
PORTVERSION= 1.6.3
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
PORTEPOCH= 2
|
||||
CATEGORIES= editors kde
|
||||
MASTER_SITES= ${MASTER_SITE_KDE}
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
--- filters/kword/pdf/xpdf/xpdf/Stream.cc
|
||||
+++ filters/kword/pdf/xpdf/xpdf/Stream.cc
|
||||
@@ -413,13 +413,11 @@ StreamPredictor::StreamPredictor(Stream
|
||||
predLine = NULL;
|
||||
ok = gFalse;
|
||||
|
||||
- if (width <= 0 || nComps <= 0 || nBits <= 0 ||
|
||||
- nComps >= INT_MAX / nBits ||
|
||||
- width >= INT_MAX / nComps / nBits)
|
||||
- return;
|
||||
-
|
||||
nVals = width * nComps;
|
||||
- if (nVals * nBits + 7 <= 0)
|
||||
+ if (width <= 0 || nComps <= 0 || nBits <= 0 ||
|
||||
+ nComps >= 4 || nBits > 16 ||
|
||||
+ width >= INT_MAX / nComps ||
|
||||
+ nVals >= (INT_MAX - 7) / nBits)
|
||||
return;
|
||||
|
||||
pixBytes = (nComps * nBits + 7) >> 3;
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
PORTNAME= kdegraphics
|
||||
PORTVERSION= ${KDE_VERSION}
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= graphics kde
|
||||
MASTER_SITES= ${MASTER_SITE_KDE}
|
||||
MASTER_SITE_SUBDIR= stable/${PORTVERSION:S/.0//}/src
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
Index: kpdf/xpdf/xpdf/Stream.cc
|
||||
===================================================================
|
||||
--- kpdf/xpdf/xpdf/Stream.cc (revision 689574)
|
||||
+++ kpdf/xpdf/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;
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
PORTNAME= kdegraphics
|
||||
PORTVERSION= ${KDE_VERSION}
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= graphics kde
|
||||
MASTER_SITES= ${MASTER_SITE_KDE}
|
||||
MASTER_SITE_SUBDIR= stable/${PORTVERSION:S/.0//}/src
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
Index: kpdf/xpdf/xpdf/Stream.cc
|
||||
===================================================================
|
||||
--- kpdf/xpdf/xpdf/Stream.cc (revision 689574)
|
||||
+++ kpdf/xpdf/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;
|
Loading…
Add table
Reference in a new issue