reopen 291250
thanks
Hi,
the previous fix for CAN-2005-0064 was taken from xpdf, which didn't
address this vulnerability completely. Attached you can find a dpatch
that adds the missing range limitation.
Cheers,
Moritz
#!/bin/sh -e
## Additional fix for CAN-2005-0064
##
## DP: Patch to fix an integer overflows in xpdf code.
## DP: This patch handles xpdf/Xref.cc
[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
if [ $# -ne 1 ]; then
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
fi
case "$1" in
-patch) patch $patch_opts -p1 < $0;;
-unpatch) patch $patch_opts -p1 -R < $0;;
*)
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1;;
esac
exit 0
@DPATCH@
--- pdftohtml-0.36.orig/xpdf/XRef.cc 2003-06-25 00:41:27.000000000 +0200
+++ pdftohtml-0.36/xpdf/XRef.cc 2005-04-05 15:48:09.000000000 +0200
@@ -486,6 +486,9 @@
} else {
keyLength = 5;
}
+ if (keyLength > 16) {
+ keyLength = 16;
+ }
permFlags = permissions.getInt();
if (encVersion >= 1 && encVersion <= 2 &&
encRevision >= 2 && encRevision <= 3) {