diff options
Diffstat (limited to 'x11/qt3-libs/patches/patch-aq')
-rw-r--r-- | x11/qt3-libs/patches/patch-aq | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/x11/qt3-libs/patches/patch-aq b/x11/qt3-libs/patches/patch-aq deleted file mode 100644 index 4f608b62e78..00000000000 --- a/x11/qt3-libs/patches/patch-aq +++ /dev/null @@ -1,69 +0,0 @@ -$NetBSD: patch-aq,v 1.2 2007/09/15 12:04:01 tron Exp $ - -http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0242 -http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-4137 - ---- src/codecs/qutfcodec.cpp.orig 2007-02-02 14:01:08.000000000 +0000 -+++ src/codecs/qutfcodec.cpp 2007-09-15 12:12:18.000000000 +0100 -@@ -154,6 +154,7 @@ - - class QUtf8Decoder : public QTextDecoder { - uint uc; -+ uint min_uc; - int need; - bool headerDone; - public: -@@ -164,11 +165,12 @@ - QString toUnicode(const char* chars, int len) - { - QString result; -- result.setLength( len ); // worst case -+ result.setLength( len + 1 ); // worst case - QChar *qch = (QChar *)result.unicode(); - uchar ch; -+ int error = -1; - for (int i=0; i<len; i++) { -- ch = *chars++; -+ ch = chars[i]; - if (need) { - if ( (ch&0xc0) == 0x80 ) { - uc = (uc << 6) | (ch & 0x3f); -@@ -182,6 +184,8 @@ - *qch++ = QChar(high); - *qch++ = QChar(low); - headerDone = TRUE; -+ } else if ((uc < min_uc) || (uc >= 0xd800 && uc <= 0xdfff) || (uc >= 0xfffe)) { -+ *qch++ = QChar::replacement; - } else { - if (headerDone || QChar(uc) != QChar::byteOrderMark) - *qch++ = uc; -@@ -190,6 +194,7 @@ - } - } else { - // error -+ i = error; - *qch++ = QChar::replacement; - need = 0; - } -@@ -200,12 +205,21 @@ - } else if ((ch & 0xe0) == 0xc0) { - uc = ch & 0x1f; - need = 1; -+ error = i; -+ min_uc = 0x80; - } else if ((ch & 0xf0) == 0xe0) { - uc = ch & 0x0f; - need = 2; -+ error = i; -+ min_uc = 0x800; - } else if ((ch&0xf8) == 0xf0) { - uc = ch & 0x07; - need = 3; -+ error = i; -+ min_uc = 0x10000; -+ } else { -+ // error -+ *qch++ = QChar::replacement; - } - } - } |