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