packages: kdebase/kdebase-branch.diff, kdegraphics/kdegraphics-branch.diff, ...
glen
glen at pld-linux.org
Tue Sep 8 00:16:12 CEST 2009
Author: glen Date: Mon Sep 7 22:16:12 2009 GMT
Module: packages Tag: HEAD
---- Log message:
- updated
---- Files affected:
packages/kdebase:
kdebase-branch.diff (1.83 -> 1.84)
packages/kdegraphics:
kdegraphics-branch.diff (1.20 -> 1.21)
packages/kdelibs:
kdelibs-branch.diff (1.86 -> 1.87)
packages/kdevelop:
kdevelop-branch.diff (1.5 -> 1.6)
packages/kdewebdev:
kdewebdev-branch.diff (1.9 -> 1.10)
---- Diffs:
================================================================
Index: packages/kdebase/kdebase-branch.diff
diff -u packages/kdebase/kdebase-branch.diff:1.83 packages/kdebase/kdebase-branch.diff:1.84
--- packages/kdebase/kdebase-branch.diff:1.83 Thu Apr 23 12:14:14 2009
+++ packages/kdebase/kdebase-branch.diff Tue Sep 8 00:16:05 2009
@@ -1,7 +1,7 @@
Index: kcontrol/background/bgrender.cpp
===================================================================
---- kcontrol/background/bgrender.cpp (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kcontrol/background/bgrender.cpp (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kcontrol/background/bgrender.cpp (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kcontrol/background/bgrender.cpp (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -1163,9 +1163,8 @@
m_pPixmap = new QPixmap(m_size);
m_pPixmap->fill(Qt::black);
@@ -16,8 +16,8 @@
Index: kcontrol/info/opengl.cpp
===================================================================
---- kcontrol/info/opengl.cpp (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kcontrol/info/opengl.cpp (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kcontrol/info/opengl.cpp (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kcontrol/info/opengl.cpp (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -608,7 +608,6 @@
}
else {
@@ -28,8 +28,8 @@
glXDestroyContext(dpy, ctx);
Index: kcontrol/arts/arts.cpp
===================================================================
---- kcontrol/arts/arts.cpp (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kcontrol/arts/arts.cpp (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kcontrol/arts/arts.cpp (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kcontrol/arts/arts.cpp (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -214,7 +214,7 @@
config = new KConfig("kcmartsrc");
load();
@@ -39,10 +39,32 @@
connect(startServer,SIGNAL(clicked()),this,SLOT(slotChanged()));
connect(networkTransparent,SIGNAL(clicked()),this,SLOT(slotChanged()));
+Index: kcontrol/kfontinst/kfontinst/Fontmap.cpp
+===================================================================
+--- kcontrol/kfontinst/kfontinst/Fontmap.cpp (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kcontrol/kfontinst/kfontinst/Fontmap.cpp (.../branches/KDE/3.5/kdebase) (revision 1021033)
+@@ -44,7 +44,7 @@
+
+ using namespace std;
+
+-static char * findSpace(char *str)
++static const char * findSpace(const char *str)
+ {
+ while(str && *str!=' ' && *str!='\t')
+ str++;
+@@ -65,7 +65,7 @@
+ char a[constMaxLen+1],
+ b[constFileMaxLen+1];
+
+- char *slash1=strchr(line, '/'),
++ const char *slash1=strchr(line, '/'),
+ *space1=slash1 ? findSpace(slash1) : NULL, //strchr(slash1, ' ') : NULL,
+ *ob=slash1 ? strchr(slash1, '(') : NULL,
+ *cb=ob ? strchr(ob, ')') : NULL,
Index: kicker/taskbar/taskcontainer.cpp
===================================================================
---- kicker/taskbar/taskcontainer.cpp (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kicker/taskbar/taskcontainer.cpp (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kicker/taskbar/taskcontainer.cpp (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kicker/taskbar/taskcontainer.cpp (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -202,6 +202,8 @@
}
return;
@@ -216,8 +238,8 @@
data.icon = pixmap;
Index: kicker/taskbar/taskbar.cpp
===================================================================
---- kicker/taskbar/taskbar.cpp (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kicker/taskbar/taskbar.cpp (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kicker/taskbar/taskbar.cpp (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kicker/taskbar/taskbar.cpp (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -61,8 +61,6 @@
m_textShadowEngine(0),
m_ignoreUpdates(false)
@@ -281,8 +303,8 @@
viewport()->setPaletteBackgroundColor(paletteBackgroundColor());
Index: kicker/taskbar/taskbar.h
===================================================================
---- kicker/taskbar/taskbar.h (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kicker/taskbar/taskbar.h (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kicker/taskbar/taskbar.h (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kicker/taskbar/taskbar.h (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -63,12 +63,11 @@
QImage* blendGradient(const QSize& size);
@@ -307,8 +329,8 @@
void resizeEvent( QResizeEvent* );
Index: kicker/extensions/taskbar/taskbarextension.cpp
===================================================================
---- kicker/extensions/taskbar/taskbarextension.cpp (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kicker/extensions/taskbar/taskbarextension.cpp (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kicker/extensions/taskbar/taskbarextension.cpp (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kicker/extensions/taskbar/taskbarextension.cpp (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -170,7 +170,6 @@
}
@@ -340,8 +362,8 @@
void TaskBarExtension::resizeEvent(QResizeEvent *e)
Index: kicker/libkicker/panner.cpp
===================================================================
---- kicker/libkicker/panner.cpp (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kicker/libkicker/panner.cpp (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kicker/libkicker/panner.cpp (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kicker/libkicker/panner.cpp (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -35,28 +35,28 @@
#include "panner.h"
#include "panner.moc"
@@ -711,8 +733,8 @@
+}
Index: kicker/libkicker/simplebutton.cpp
===================================================================
---- kicker/libkicker/simplebutton.cpp (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kicker/libkicker/simplebutton.cpp (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kicker/libkicker/simplebutton.cpp (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kicker/libkicker/simplebutton.cpp (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -32,6 +32,8 @@
#include <kipc.h>
#include <kstandarddirs.h>
@@ -742,8 +764,8 @@
if (ph < (h - margin))
Index: kicker/libkicker/kickertip.cpp
===================================================================
---- kicker/libkicker/kickertip.cpp (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kicker/libkicker/kickertip.cpp (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kicker/libkicker/kickertip.cpp (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kicker/libkicker/kickertip.cpp (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -128,8 +128,10 @@
// Tickle the information out of the bastard.
client->updateKickerTip(data);
@@ -944,8 +966,8 @@
break;
Index: kicker/libkicker/panner.h
===================================================================
---- kicker/libkicker/panner.h (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kicker/libkicker/panner.h (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kicker/libkicker/panner.h (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kicker/libkicker/panner.h (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -24,14 +24,14 @@
#ifndef __panner_h__
#define __panner_h__
@@ -1038,8 +1060,8 @@
#endif
Index: kicker/applets/systemtray/systemtrayapplet.h
===================================================================
---- kicker/applets/systemtray/systemtrayapplet.h (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kicker/applets/systemtray/systemtrayapplet.h (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kicker/applets/systemtray/systemtrayapplet.h (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kicker/applets/systemtray/systemtrayapplet.h (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -118,6 +118,7 @@
TrayEmbed( bool kdeTray, QWidget* parent = NULL );
bool kdeTray() const { return kde_tray; }
@@ -1050,8 +1072,8 @@
};
Index: kicker/applets/systemtray/systemtrayapplet.cpp
===================================================================
---- kicker/applets/systemtray/systemtrayapplet.cpp (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kicker/applets/systemtray/systemtrayapplet.cpp (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kicker/applets/systemtray/systemtrayapplet.cpp (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kicker/applets/systemtray/systemtrayapplet.cpp (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -54,6 +54,8 @@
#include <X11/Xlib.h>
@@ -1263,8 +1285,8 @@
Index: kicker/applets/clock/clock.h
===================================================================
---- kicker/applets/clock/clock.h (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kicker/applets/clock/clock.h (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kicker/applets/clock/clock.h (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kicker/applets/clock/clock.h (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -41,6 +41,7 @@
#include <kickertip.h>
@@ -1302,8 +1324,8 @@
Index: kicker/applets/clock/Makefile.am
===================================================================
---- kicker/applets/clock/Makefile.am (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kicker/applets/clock/Makefile.am (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kicker/applets/clock/Makefile.am (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kicker/applets/clock/Makefile.am (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -1,7 +1,7 @@
pic_DATA = lcd.png
picdir = $(kde_datadir)/clockapplet/pics
@@ -1315,8 +1337,8 @@
Index: kicker/applets/clock/clock.cpp
===================================================================
---- kicker/applets/clock/clock.cpp (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kicker/applets/clock/clock.cpp (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kicker/applets/clock/clock.cpp (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kicker/applets/clock/clock.cpp (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -57,6 +57,7 @@
#include <global.h> // libkickermain
@@ -1448,8 +1470,8 @@
if (orientation() == Qt::Vertical)
Index: kicker/kicker/core/container_extension.cpp
===================================================================
---- kicker/kicker/core/container_extension.cpp (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kicker/kicker/core/container_extension.cpp (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kicker/kicker/core/container_extension.cpp (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kicker/kicker/core/container_extension.cpp (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -126,6 +126,7 @@
connect(Kicker::the()->kwinModule(), SIGNAL(currentDesktopChanged(int)),
this, SLOT( currentDesktopChanged(int)));
@@ -1469,8 +1491,8 @@
// if we have an extension, we need to grab the extension-specific
Index: kicker/kicker/core/containerarea.cpp
===================================================================
---- kicker/kicker/core/containerarea.cpp (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kicker/kicker/core/containerarea.cpp (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kicker/kicker/core/containerarea.cpp (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kicker/kicker/core/containerarea.cpp (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -90,15 +90,12 @@
m_addAppletDialog(0)
{
@@ -1491,8 +1513,8 @@
setBackground();
Index: kicker/kicker/core/panelextension.cpp
===================================================================
---- kicker/kicker/core/panelextension.cpp (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kicker/kicker/core/panelextension.cpp (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kicker/kicker/core/panelextension.cpp (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kicker/kicker/core/panelextension.cpp (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -74,7 +74,6 @@
connect(_containerArea, SIGNAL(maintainFocus(bool)), this, SIGNAL(maintainFocus(bool)));
_layout->addWidget(_containerArea);
@@ -1503,8 +1525,8 @@
Index: kioslave/media/mediamanager/halbackend.cpp
===================================================================
---- kioslave/media/mediamanager/halbackend.cpp (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kioslave/media/mediamanager/halbackend.cpp (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kioslave/media/mediamanager/halbackend.cpp (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kioslave/media/mediamanager/halbackend.cpp (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -851,13 +851,6 @@
result << tmp;
}
@@ -1583,8 +1605,8 @@
QString option = valids["journaling"];
Index: kioslave/fish/fish.cpp
===================================================================
---- kioslave/fish/fish.cpp (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kioslave/fish/fish.cpp (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kioslave/fish/fish.cpp (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kioslave/fish/fish.cpp (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -2,7 +2,7 @@
fish.cpp - a FISH kioslave
-------------------
@@ -1605,8 +1627,8 @@
if (rc > 0) {
Index: nsplugins/nspluginloader.cpp
===================================================================
---- nsplugins/nspluginloader.cpp (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ nsplugins/nspluginloader.cpp (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- nsplugins/nspluginloader.cpp (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ nsplugins/nspluginloader.cpp (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -69,7 +69,7 @@
if (cfg.readBoolEntry("demandLoad", false)) {
_button = new QPushButton(i18n("Start Plugin"), dynamic_cast<EMBEDCLASS*>(this));
@@ -1637,8 +1659,8 @@
WId winid = stub->winId();
Index: nsplugins/nspluginloader.h
===================================================================
---- nsplugins/nspluginloader.h (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ nsplugins/nspluginloader.h (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- nsplugins/nspluginloader.h (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ nsplugins/nspluginloader.h (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -55,6 +55,7 @@
void javascriptResult( int id, QString result ) { stub->javascriptResult( id, result ); }
@@ -1649,8 +1671,8 @@
protected:
Index: knetattach/knetattach.ui
===================================================================
---- knetattach/knetattach.ui (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ knetattach/knetattach.ui (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- knetattach/knetattach.ui (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ knetattach/knetattach.ui (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -236,7 +236,7 @@
</sizepolicy>
</property>
@@ -1662,8 +1684,8 @@
<number>1</number>
Index: kwin/atoms.cpp
===================================================================
---- kwin/atoms.cpp (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ kwin/atoms.cpp (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- kwin/atoms.cpp (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ kwin/atoms.cpp (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -85,6 +85,8 @@
Atom fake;
atoms[n] = &fake;
@@ -1675,8 +1697,8 @@
names[n++] = (char*) "XdndAware";
Index: l10n/tr/entry.desktop
===================================================================
---- l10n/tr/entry.desktop (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ l10n/tr/entry.desktop (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- l10n/tr/entry.desktop (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ l10n/tr/entry.desktop (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -83,7 +83,7 @@
Languages=tr
DecimalSymbol=,
@@ -1688,8 +1710,8 @@
PositiveSign=
Index: l10n/ec/entry.desktop
===================================================================
---- l10n/ec/entry.desktop (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ l10n/ec/entry.desktop (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- l10n/ec/entry.desktop (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ l10n/ec/entry.desktop (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -1,5 +1,5 @@
[KCM Locale]
-Name=Equador
@@ -1699,8 +1721,8 @@
Name[az]=Ekvator
Index: l10n/es/entry.desktop
===================================================================
---- l10n/es/entry.desktop (.../tags/KDE/3.5.10/kdebase) (revision 958029)
-+++ l10n/es/entry.desktop (.../branches/KDE/3.5/kdebase) (revision 958029)
+--- l10n/es/entry.desktop (.../tags/KDE/3.5.10/kdebase) (revision 1021033)
++++ l10n/es/entry.desktop (.../branches/KDE/3.5/kdebase) (revision 1021033)
@@ -94,7 +94,8 @@
NegativeMonetarySignPosition=1
DateFormat[es]=%A, %e de %B de %Y
================================================================
Index: packages/kdegraphics/kdegraphics-branch.diff
diff -u /dev/null packages/kdegraphics/kdegraphics-branch.diff:1.21
--- /dev/null Tue Sep 8 00:16:12 2009
+++ packages/kdegraphics/kdegraphics-branch.diff Tue Sep 8 00:16:06 2009
@@ -0,0 +1,906 @@
+Index: kpdf/xpdf/xpdf/JBIG2Stream.cc
+===================================================================
+--- kpdf/xpdf/xpdf/JBIG2Stream.cc (.../tags/KDE/3.5.10/kdegraphics) (revision 1021035)
++++ kpdf/xpdf/xpdf/JBIG2Stream.cc (.../branches/KDE/3.5/kdegraphics) (revision 1021035)
+@@ -422,12 +422,14 @@
+ table[i] = table[len];
+
+ // assign prefixes
+- i = 0;
+- prefix = 0;
+- table[i++].prefix = prefix++;
+- for (; table[i].rangeLen != jbig2HuffmanEOT; ++i) {
+- prefix <<= table[i].prefixLen - table[i-1].prefixLen;
+- table[i].prefix = prefix++;
++ if (table[0].rangeLen != jbig2HuffmanEOT) {
++ i = 0;
++ prefix = 0;
++ table[i++].prefix = prefix++;
++ for (; table[i].rangeLen != jbig2HuffmanEOT; ++i) {
++ prefix <<= table[i].prefixLen - table[i-1].prefixLen;
++ table[i].prefix = prefix++;
++ }
+ }
+ }
+
+@@ -491,7 +493,7 @@
+ }
+ if (p->bits < 0) {
+ error(str->getPos(), "Bad two dim code in JBIG2 MMR stream");
+- return 0;
++ return EOF;
+ }
+ bufLen -= p->bits;
+ return p->n;
+@@ -684,8 +686,9 @@
+ h = hA;
+ line = (wA + 7) >> 3;
+ if (w <= 0 || h <= 0 || line <= 0 || h >= (INT_MAX - 1) / line) {
+- data = NULL;
+- return;
++ // force a call to gmalloc(-1), which will throw an exception
++ h = -1;
++ line = 2;
+ }
+ // need to allocate one extra guard byte for use in combine()
+ data = (Guchar *)gmalloc(h * line + 1);
+@@ -699,8 +702,9 @@
+ h = bitmap->h;
+ line = bitmap->line;
+ if (w <= 0 || h <= 0 || line <= 0 || h >= (INT_MAX - 1) / line) {
+- data = NULL;
+- return;
++ // force a call to gmalloc(-1), which will throw an exception
++ h = -1;
++ line = 2;
+ }
+ // need to allocate one extra guard byte for use in combine()
+ data = (Guchar *)gmalloc(h * line + 1);
+@@ -755,6 +759,8 @@
+ inline void JBIG2Bitmap::getPixelPtr(int x, int y, JBIG2BitmapPtr *ptr) {
+ if (y < 0 || y >= h || x >= w) {
+ ptr->p = NULL;
++ ptr->shift = 0; // make gcc happy
++ ptr->x = 0; // make gcc happy
+ } else if (x < 0) {
+ ptr->p = &data[y * line];
+ ptr->shift = 7;
+@@ -799,6 +805,10 @@
+ Guint src0, src1, src, dest, s1, s2, m1, m2, m3;
+ GBool oneByte;
+
++ // check for the pathological case where y = -2^31
++ if (y < -0x7fffffff) {
++ return;
++ }
+ if (y < 0) {
+ y0 = -y;
+ } else {
+@@ -1012,8 +1022,13 @@
+ JBIG2SymbolDict::JBIG2SymbolDict(Guint segNumA, Guint sizeA):
+ JBIG2Segment(segNumA)
+ {
++ Guint i;
++
+ size = sizeA;
+ bitmaps = (JBIG2Bitmap **)gmallocn(size, sizeof(JBIG2Bitmap *));
++ for (i = 0; i < size; ++i) {
++ bitmaps[i] = NULL;
++ }
+ genericRegionStats = NULL;
+ refinementRegionStats = NULL;
+ }
+@@ -1022,7 +1037,9 @@
+ Guint i;
+
+ for (i = 0; i < size; ++i) {
+- delete bitmaps[i];
++ if (bitmaps[i]) {
++ delete bitmaps[i];
++ }
+ }
+ gfree(bitmaps);
+ if (genericRegionStats) {
+@@ -1301,6 +1318,13 @@
+ // keep track of the start of the segment data
+ segDataPos = getPos();
+
++ // check for missing page information segment
++ if (!pageBitmap && ((segType >= 4 && segType <= 7) ||
++ (segType >= 20 && segType <= 43))) {
++ error(getPos(), "First JBIG2 segment associated with a page must be a page information segment");
++ goto syntaxError;
++ }
++
+ // read the segment data
+ switch (segType) {
+ case 0:
+@@ -1455,6 +1479,8 @@
+ Guint i, j, k;
+ Guchar *p;
+
++ symWidths = NULL;
++
+ // symbol dictionary flags
+ if (!readUWord(&flags)) {
+ goto eofError;
+@@ -1510,26 +1536,32 @@
+ codeTables = new GList();
+ numInputSyms = 0;
+ for (i = 0; i < nRefSegs; ++i) {
+- // This is need by poppler bug 12014, returning gFalse makes it not crash
+- // but we end up with a empty page while acroread is able to render
+- // part of it
+ if ((seg = findSegment(refSegs[i]))) {
+ if (seg->getType() == jbig2SegSymbolDict) {
+- numInputSyms += ((JBIG2SymbolDict *)seg)->getSize();
++ j = ((JBIG2SymbolDict *)seg)->getSize();
++ if (numInputSyms > UINT_MAX - j) {
++ error(getPos(), "Too many input symbols in JBIG2 symbol dictionary");
++ delete codeTables;
++ goto eofError;
++ }
++ numInputSyms += j;
+ } else if (seg->getType() == jbig2SegCodeTable) {
+- codeTables->append(seg);
++ codeTables->append(seg);
+ }
+- } else {
+- return gFalse;
+ }
+ }
++ if (numInputSyms > UINT_MAX - numNewSyms) {
++ error(getPos(), "Too many input symbols in JBIG2 symbol dictionary");
++ delete codeTables;
++ goto eofError;
++ }
+
+ // compute symbol code length
+- symCodeLen = 0;
+- i = 1;
+- while (i < numInputSyms + numNewSyms) {
++ symCodeLen = 1;
++ i = (numInputSyms + numNewSyms) >> 1;
++ while (i) {
+ ++symCodeLen;
+- i <<= 1;
++ i >>= 1;
+ }
+
+ // get the input symbol bitmaps
+@@ -1541,11 +1573,12 @@
+ k = 0;
+ inputSymbolDict = NULL;
+ for (i = 0; i < nRefSegs; ++i) {
+- seg = findSegment(refSegs[i]);
+- if (seg->getType() == jbig2SegSymbolDict) {
+- inputSymbolDict = (JBIG2SymbolDict *)seg;
+- for (j = 0; j < inputSymbolDict->getSize(); ++j) {
+- bitmaps[k++] = inputSymbolDict->getBitmap(j);
++ if ((seg = findSegment(refSegs[i]))) {
++ if (seg->getType() == jbig2SegSymbolDict) {
++ inputSymbolDict = (JBIG2SymbolDict *)seg;
++ for (j = 0; j < inputSymbolDict->getSize(); ++j) {
++ bitmaps[k++] = inputSymbolDict->getBitmap(j);
++ }
+ }
+ }
+ }
+@@ -1560,6 +1593,9 @@
+ } else if (huffDH == 1) {
+ huffDHTable = huffTableE;
+ } else {
++ if (i >= (Guint)codeTables->getLength()) {
++ goto codeTableError;
++ }
+ huffDHTable = ((JBIG2CodeTable *)codeTables->get(i++))->getHuffTable();
+ }
+ if (huffDW == 0) {
+@@ -1567,17 +1603,26 @@
+ } else if (huffDW == 1) {
+ huffDWTable = huffTableC;
+ } else {
++ if (i >= (Guint)codeTables->getLength()) {
++ goto codeTableError;
++ }
+ huffDWTable = ((JBIG2CodeTable *)codeTables->get(i++))->getHuffTable();
+ }
+ if (huffBMSize == 0) {
+ huffBMSizeTable = huffTableA;
+ } else {
++ if (i >= (Guint)codeTables->getLength()) {
++ goto codeTableError;
++ }
+ huffBMSizeTable =
+ ((JBIG2CodeTable *)codeTables->get(i++))->getHuffTable();
+ }
+ if (huffAggInst == 0) {
+ huffAggInstTable = huffTableA;
+ } else {
++ if (i >= (Guint)codeTables->getLength()) {
++ goto codeTableError;
++ }
+ huffAggInstTable =
+ ((JBIG2CodeTable *)codeTables->get(i++))->getHuffTable();
+ }
+@@ -1610,7 +1655,6 @@
+ }
+
+ // allocate symbol widths storage
+- symWidths = NULL;
+ if (huff && !refAgg) {
+ symWidths = (Guint *)gmallocn(numNewSyms, sizeof(Guint));
+ }
+@@ -1652,6 +1696,10 @@
+ goto syntaxError;
+ }
+ symWidth += dw;
++ if (i >= numNewSyms) {
++ error(getPos(), "Too many symbols in JBIG2 symbol dictionary");
++ goto syntaxError;
++ }
+
+ // using a collective bitmap, so don't read a bitmap here
+ if (huff && !refAgg) {
+@@ -1688,6 +1736,10 @@
+ arithDecoder->decodeInt(&refDX, iardxStats);
+ arithDecoder->decodeInt(&refDY, iardyStats);
+ }
++ if (symID >= numInputSyms + i) {
++ error(getPos(), "Invalid symbol ID in JBIG2 symbol dictionary");
++ goto syntaxError;
++ }
+ refBitmap = bitmaps[symID];
+ bitmaps[numInputSyms + i] =
+ readGenericRefinementRegion(symWidth, symHeight,
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kdebase/kdebase-branch.diff?r1=1.83&r2=1.84&f=u
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kdegraphics/kdegraphics-branch.diff?r1=1.20&r2=1.21&f=u
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kdelibs/kdelibs-branch.diff?r1=1.86&r2=1.87&f=u
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kdevelop/kdevelop-branch.diff?r1=1.5&r2=1.6&f=u
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kdewebdev/kdewebdev-branch.diff?r1=1.9&r2=1.10&f=u
More information about the pld-cvs-commit
mailing list