summaryrefslogtreecommitdiff
path: root/print/xpdf/patches/patch-aq
diff options
context:
space:
mode:
Diffstat (limited to 'print/xpdf/patches/patch-aq')
-rw-r--r--print/xpdf/patches/patch-aq134
1 files changed, 0 insertions, 134 deletions
diff --git a/print/xpdf/patches/patch-aq b/print/xpdf/patches/patch-aq
deleted file mode 100644
index a056d225e23..00000000000
--- a/print/xpdf/patches/patch-aq
+++ /dev/null
@@ -1,134 +0,0 @@
-$NetBSD: patch-aq,v 1.4 2011/10/27 02:35:41 tez Exp $
-
-Fix arbitrary code execution with embedded fonts (CVE-2008-1693).
-
---- xpdf/Object.h.orig 2011-08-15 16:08:53.000000000 -0500
-+++ xpdf/Object.h 2011-10-26 20:48:41.411023600 -0500
-@@ -68,17 +68,18 @@
- //------------------------------------------------------------------------
-
- #ifdef DEBUG_MEM
--#define initObj(t) ++numAlloc[type = t]
-+#define initObj(t) zeroUnion(); ++numAlloc[type = t]
- #else
--#define initObj(t) type = t
-+#define initObj(t) zeroUnion(); type = t
- #endif
-
- class Object {
- public:
--
-+ // attempt to clear the anonymous union
-+ void zeroUnion() { this->name = NULL; }
- // Default constructor.
- Object():
-- type(objNone) {}
-+ type(objNone) { zeroUnion(); }
-
- // Initialize an object.
- Object *initBool(GBool boolnA)
-@@ -220,16 +221,16 @@
- #include "Array.h"
-
- inline int Object::arrayGetLength()
-- { return array->getLength(); }
-+ { if (type != objArray) return 0; return array->getLength(); }
-
- inline void Object::arrayAdd(Object *elem)
-- { array->add(elem); }
-+ { if (type == objArray) array->add(elem); }
-
- inline Object *Object::arrayGet(int i, Object *obj)
-- { return array->get(i, obj); }
-+ { if (type != objArray) return obj->initNull(); return array->get(i, obj); }
-
- inline Object *Object::arrayGetNF(int i, Object *obj)
-- { return array->getNF(i, obj); }
-+ { if (type != objArray) return obj->initNull(); return array->getNF(i, obj); }
-
- //------------------------------------------------------------------------
- // Dict accessors.
-@@ -238,31 +239,31 @@
- #include "Dict.h"
-
- inline int Object::dictGetLength()
-- { return dict->getLength(); }
-+ { if (type != objDict) return 0; return dict->getLength(); }
-
- inline void Object::dictAdd(char *key, Object *val)
-- { dict->add(key, val); }
-+ { if (type == objDict) dict->add(key, val); }
-
- inline GBool Object::dictIs(const char *dictType)
-- { return dict->is(dictType); }
-+ { return (type == objDict) && dict->is(dictType); }
-
- inline GBool Object::isDict(const char *dictType)
- { return type == objDict && dictIs(dictType); }
-
- inline Object *Object::dictLookup(const char *key, Object *obj, int recursion)
-- { return dict->lookup(key, obj, recursion); }
-+ { if (type != objDict) return obj->initNull(); return dict->lookup(key, obj, recursion); }
-
- inline Object *Object::dictLookupNF(const char *key, Object *obj)
-- { return dict->lookupNF(key, obj); }
-+ { if (type != objDict) return obj->initNull(); return dict->lookupNF(key, obj); }
-
- inline char *Object::dictGetKey(int i)
-- { return dict->getKey(i); }
-+ { if (type != objDict) return NULL; return dict->getKey(i); }
-
- inline Object *Object::dictGetVal(int i, Object *obj)
-- { return dict->getVal(i, obj); }
-+ { if (type != objDict) return obj->initNull(); return dict->getVal(i, obj); }
-
- inline Object *Object::dictGetValNF(int i, Object *obj)
-- { return dict->getValNF(i, obj); }
-+ { if (type != objDict) return obj->initNull(); return dict->getValNF(i, obj); }
-
- //------------------------------------------------------------------------
- // Stream accessors.
-@@ -271,33 +272,33 @@
- #include "Stream.h"
-
- inline GBool Object::streamIs(char *dictType)
-- { return stream->getDict()->is(dictType); }
-+ { return (type == objStream) && stream->getDict()->is(dictType); }
-
- inline GBool Object::isStream(char *dictType)
-- { return type == objStream && streamIs(dictType); }
-+ { return (type == objStream) && streamIs(dictType); }
-
- inline void Object::streamReset()
-- { stream->reset(); }
-+ { if (type == objStream) stream->reset(); }
-
- inline void Object::streamClose()
-- { stream->close(); }
-+ { if (type == objStream) stream->close(); }
-
- inline int Object::streamGetChar()
-- { return stream->getChar(); }
-+ { if (type != objStream) return EOF; return stream->getChar(); }
-
- inline int Object::streamLookChar()
-- { return stream->lookChar(); }
-+ { if (type != objStream) return EOF; return stream->lookChar(); }
-
- inline char *Object::streamGetLine(char *buf, int size)
-- { return stream->getLine(buf, size); }
-+ { if (type != objStream) return NULL; return stream->getLine(buf, size); }
-
- inline Guint Object::streamGetPos()
-- { return stream->getPos(); }
-+ { if (type != objStream) return 0; return stream->getPos(); }
-
- inline void Object::streamSetPos(Guint pos, int dir)
-- { stream->setPos(pos, dir); }
-+ { if (type == objStream) stream->setPos(pos, dir); }
-
- inline Dict *Object::streamGetDict()
-- { return stream->getDict(); }
-+ { if (type != objStream) return NULL; return stream->getDict(); }
-
- #endif