Hi,
please unblock openoffice.org 2.0.4.dfsg.2-4 to allow it entering testing.
The changelogs relative to the 21.0.4.ffsg.2-2 currently in testing is:
openoffice.org (2.0.4.dfsg.2-4) unstable; urgency=high
* merge from openofficeorg--experimental--2.1:
- debian/changelog:
+ recode to UTF-8 to shut lintian up
- debian/rules:
+ do not install Helvetica-Narrow*.afm because it confuses OOo...
+ link directly to xml-apis.jar instead of hard-coding jaxp-1.2.jar
and remove depends on libjaxp1.2-java since libxalan2-java has the
link we use and it depends on the right version, too (closes: #406783)
+ don't compress example python files
+ remove install-arch stampdir after dh_strip --dbg-package because
dh_strip is not idempotent
- debian/README.Debian:
+ s/oopadmin/spadmin/ (closes: #406760)
* debian/rules:
- really bump dmake builddep to the needed 1:4.6 *sigh*
-- Rene Engelhard <rene@debian.org> Tue, 23 Jan 2007 18:54:37 +0100
openoffice.org (2.0.4.dfsg.2-3) unstable; urgency=high
* ooo-build:
- cws-cmcfixes30.diff: add writer parts of cws cmcfixes30, fixes
CVE-2006-6628 (closes: #404105)
* debian/changelog :):
- mention CVE-2006-5870 in 2.0.4-1 changelogs entry
-- Rene Engelhard <rene@debian.org> Fri, 5 Jan 2007 21:06:58 +0100
2.0.4.dfsg.2-3 obviously needs to go in anyway but was long blocked by
alpha and sparc.... 2.0.4.dfsg.2-4 adds one or more (depending on how you see it)
RC bugfix(es) and important bugs - together with some minor, riskless ones.
Rationale for the afm change can be found at
http://qa.openoffice.org/issues/show_bug.cgi?id=72124 (the comment from "sba" on Thu Jan 11 08:13:04 -0800 2007.
interdiff attached.
Grüße/Regards,
René
--
.''`. Ren? Engelhard -- Debian GNU/Linux Developer
: :' : http://www.debian.org | http://people.debian.org/~rene/
`. `' rene@debian.org | GnuPG-Key ID: 248AEB73
`- Fingerprint: 41FA F208 28D4 7CA5 19BB 7AD9 F859 90B0 248A EB73
diff -u openoffice.org-2.0.4.dfsg.2/ooo-build/ChangeLog openoffice.org-2.0.4.dfsg.2/ooo-build/ChangeLog
--- openoffice.org-2.0.4.dfsg.2/ooo-build/ChangeLog
+++ openoffice.org-2.0.4.dfsg.2/ooo-build/ChangeLog
@@ -1,5 +1,10 @@
*** specially merged branch ***
+2006-12.20 Rene Engelhard <rene@debian.org>
+
+ * patches/src680/apply, patches/src680/cws-cmcfixes30.diff: backport
+ sw parts of cws cmcfixes30
+
2006-12-15 Rene Engelhard <rene@debian.org>
* patches/src680/apply, patches/src680/ooo68047.vcl.zwj.diff: add from
diff -u openoffice.org-2.0.4.dfsg.2/ooo-build/patches/src680/apply openoffice.org-2.0.4.dfsg.2/ooo-build/patches/src680/apply
--- openoffice.org-2.0.4.dfsg.2/ooo-build/patches/src680/apply
+++ openoffice.org-2.0.4.dfsg.2/ooo-build/patches/src680/apply
@@ -163,9 +163,6 @@
# workaround for a crash in the help on amd64.
sal-doublefree.diff, i#67740, mklose
-# extract of cmcfixes28
-cws-cmcfixes28.diff
-
# 64bit - return values smaller than 16bytes
64bit-returning-small-struct.diff, i#71815, caolan
# 64bit - don't destroy floats
@@ -177,6 +174,10 @@
[ CWSBackports ]
# 64bit stuff
cws-sixtyfour09.diff
+# extract of cmcfixes28
+cws-cmcfixes28.diff
+# extract of the sw parts of cmcfixes30
+cws-cmcfixes30.diff
# [ LinuxOnly ]
diff -u openoffice.org-2.0.4.dfsg.2/debian/changelog openoffice.org-2.0.4.dfsg.2/debian/changelog
--- openoffice.org-2.0.4.dfsg.2/debian/changelog
+++ openoffice.org-2.0.4.dfsg.2/debian/changelog
@@ -1,3 +1,33 @@
+openoffice.org (2.0.4.dfsg.2-4) unstable; urgency=high
+
+ * merge from openofficeorg--experimental--2.1:
+ - debian/changelog:
+ + recode to UTF-8 to shut lintian up
+ - debian/rules:
+ + do not install Helvetica-Narrow*.afm because it confuses OOo...
+ + link directly to xml-apis.jar instead of hard-coding jaxp-1.2.jar
+ and remove depends on libjaxp1.2-java since libxalan2-java has the
+ link we use and it depends on the right version, too (closes: #406783)
+ + don't compress example python files
+ + remove install-arch stampdir after dh_strip --dbg-package because
+ dh_strip is not idempotent
+ - debian/README.Debian:
+ + s/oopadmin/spadmin/ (closes: #406760)
+ * debian/rules:
+ - really bump dmake builddep to the needed 1:4.6 *sigh*
+
+ -- Rene Engelhard <rene@debian.org> Tue, 23 Jan 2007 18:54:37 +0100
+
+openoffice.org (2.0.4.dfsg.2-3) unstable; urgency=high
+
+ * ooo-build:
+ - cws-cmcfixes30.diff: add writer parts of cws cmcfixes30, fixes
+ CVE-2006-6628 (closes: #404105)
+ * debian/changelog :):
+ - mention CVE-2006-5870 in 2.0.4-1 changelogs entry
+
+ -- Rene Engelhard <rene@debian.org> Fri, 5 Jan 2007 21:06:58 +0100
+
openoffice.org (2.0.4.dfsg.2-2) unstable; urgency=high
* ooo-build:
@@ -30,7 +60,7 @@
- bin/openoffice-xlate-lang: add dz
* debian/rules:
- enable -l10n-dz, add FONT_SUGGESTS (ttf-dzongkha)
- - re-add free afms, thanks Frank K�+ - re-add free afms, thanks Frank Küster
- add Mhz, GHz and THz to the exclusion list for the AutoCorrect
(closes: #401651)
- fix SDK docs install wrt index.html (closes: #397375)
@@ -197,6 +227,8 @@
- sd-slideshowimpl-check-for-viewframe.diff: backport revision 1.31.60.1
from cws impress107 to fix crash on the impress wizard (i#69530)
(closes: #389473)
+ - cws-cmcfixes28.diff: backport some important fixes (64bit,
+ CVE-2006-5870, ...) (closes: #405679)
* debian/rules:
- build with system icu again
- build also native versions of officebean.jar, sdbc_hsqldb.jar and
@@ -996,7 +1028,7 @@
remove openoffice.org-dbg from control.in, move it to
control.debug.in. Request from ftpmasters.
* ooo-build/src: add OOB680 GSIs from ftp.linux.cz and bs GSI from
- http://vedran.root.ba/GSI_bs.sdf.bz2, thanks Vedran Ljubović
+ http://vedran.root.ba/GSI_bs.sdf.bz2, thanks Vedran LjuboviÄ
* debian/rules:
- remove system-myspell stuff from the CXXLIBS conditional;
hunspell replaced myspell and we really don't need to link with
@@ -1226,7 +1258,7 @@
- add $PYTHOMHOME/site-packages to PYTHONPATH in pythonloader.unorc
(closes: #336655)
- don't build-depend on libgamin-dev on sarge backports,
- thanks Jérôme Warnier
+ thanks Jérôme Warnier
- enable lt langpack
- don't build empty used_libs...
- add missing sarge backport conditional to the system-icu conditional
@@ -2211,7 +2243,7 @@
* New patches:
- lt-fixes.diff: fixes for -lt langpack, thanks
- Mantas Kriauèiûna <mantas@akl.lt> (closes: #280757)
+ Mantas Kriauèiûna <mantas@akl.lt> (closes: #280757)
* debian/control.in:
- evoluton is in Section: gnome so put openoffice.org-evolution there, too
instead of editors [RE]
@@ -2685,7 +2717,7 @@
- add a section about how to build the Woody backport [CH]
- document DEB_BUILD_OPTIONS=kdeicons [CH]
* debian/po:
- - add Turkish debconf template translation, thanks Mehmet Türker
+ - add Turkish debconf template translation, thanks Mehmet Türker
(closes: #246073) [RE]
- add Catalan debconf template translation, thanks Aleix Badia i Bosch
(closes: #248745) [RE]
@@ -2702,7 +2734,7 @@
* Urgency because of FTBFS and security-bug....
* New patches:
- sysui-translations.diff: add .fi and .ca translations to sysui; remove
- german stuff for not german languages - thanks Martin-Éric Racine
+ german stuff for not german languages - thanks Martin-Ãric Racine
Jordi Mallach and Sebastien Bacher (closes: #236796)
- build-use-old-libart.diff: Adapt from Red Hat patch to use older version
of libart for Woody backport [DW, CH]
@@ -3021,7 +3053,7 @@
+ solar-use-fork: use fork in tools/source/solar/solar.c to make it build
with 2.5/2.6 kernels, thanks Ken Foskey (IZ #17241) [RE]
+ datasources_types_add_mysql: add missing MySQL entries in datasource
- dialog (closes: #218036), thanks Josep Monés i Teixador for the
+ dialog (closes: #218036), thanks Josep Monés i Teixador for the
patch [RE]
+ i18n-search-all: Fall back to any lanugage pack instead of crashing
if no -en or -de installed (closes: #171623) [CH]
diff -u openoffice.org-2.0.4.dfsg.2/debian/control openoffice.org-2.0.4.dfsg.2/debian/control
--- openoffice.org-2.0.4.dfsg.2/debian/control
+++ openoffice.org-2.0.4.dfsg.2/debian/control
@@ -3,7 +3,7 @@
Priority: optional
Maintainer: Debian OpenOffice Team <debian-openoffice@lists.debian.org>
Uploaders: Chris Halls <halls@debian.org>, Rene Engelhard <rene@debian.org>
-Build-Depends: lsb-release, bzip2, bison (>= 1:1.875a-1) [i386 powerpc sparc amd64], flex [i386 powerpc sparc amd64], libpam0g-dev [i386 powerpc sparc amd64], libxaw7-dev [i386 powerpc sparc amd64], unzip [i386 powerpc sparc amd64], zip [i386 powerpc sparc amd64], autoconf [i386 powerpc sparc amd64], sharutils [i386 powerpc sparc amd64], libgtk2.0-dev [i386 powerpc sparc amd64], pkg-config [i386 powerpc sparc amd64], xutils [i386 powerpc sparc amd64], libfontconfig1-dev [i386 powerpc sparc amd64], binutils (>= 2.14.90.0.6-3) [sparc], libc6 (>= 2.3.2-1) [powerpc], zlib1g-dev [i386 powerpc sparc amd64], libfreetype6-dev [i386 powerpc sparc amd64], libaudio-dev [i386 powerpc sparc amd64], libx11-dev [i386 powerpc sparc amd64], libsm-dev [i386 powerpc sparc amd64], libxt-dev [i386 powerpc sparc amd64], libxext-dev [i386 powerpc sparc amd64], libice-dev [i386 powerpc sparc amd64], libsane-dev [i386 powerpc sparc amd64], libxrender-dev [i386 powerpc sparc amd64], libcupsys2-dev [i386 powerpc sparc amd64], libarchive-zip-perl [i386 powerpc sparc amd64], libstartup-notification0-dev [i386 powerpc sparc amd64], libpng12-dev [i386 powerpc sparc amd64], libjpeg62-dev [i386 powerpc sparc amd64], libxml2-dev [i386 powerpc sparc amd64], dmake (>= 4.3-1) [i386 powerpc sparc amd64], libldap2-dev [i386 powerpc sparc amd64], libexpat1-dev [i386 powerpc sparc amd64], libgnomevfs2-dev [i386 powerpc sparc amd64], fastjar [i386 powerpc sparc amd64], libsndfile1-dev [i386 powerpc sparc amd64], xsltproc [i386 powerpc sparc amd64], imagemagick [i386 powerpc sparc amd64], fdupes [i386 powerpc sparc amd64], xml-core [i386 powerpc sparc amd64], , libcurl3-openssl-dev [i386 powerpc sparc amd64] , libxkbfile-dev [i386 powerpc sparc amd64], libxinerama-dev [i386 powerpc sparc amd64], x11proto-render-dev [i386 powerpc sparc amd64] , unixodbc-dev (>= 2.2.11) [i386 powerpc sparc amd64] , libdb4.4-dev [i386 powerpc sparc amd64] , python-central (>= 0.5) [i386 powerpc sparc amd64], debhelper (>= 5.0.37.2), python-dev (>= 2.4) [i386 powerpc sparc amd64] , dpkg-dev (>= 1.13.19) , java-gcj-compat-dev (>= 1.0.65-4) [i386 powerpc sparc amd64] , ant (>= 1.6.5) [i386 powerpc sparc amd64] , libxt-java (>= 0.20050823) [i386 powerpc sparc amd64] , libxerces2-java [i386 powerpc sparc amd64] , libxalan2-java (>= 2.6.0-1) [i386 powerpc sparc amd64] , libjaxp1.2-java [i386 powerpc sparc amd64] , libdb4.4-java [i386 powerpc sparc amd64] , mingw32 [i386 powerpc sparc amd64] , libxul-dev [i386 powerpc sparc amd64], libnss3-dev [i386 powerpc sparc amd64] , libhunspell-dev (>= 1.0.8-3) [i386 powerpc sparc amd64] , libaltlinuxhyph-dev (>= 0.1.1-7) [i386 powerpc sparc amd64] , libstlport4.6-dev (>= 4.6.2-3) [i386 powerpc sparc amd64] , libboost-dev [i386 powerpc sparc amd64] , libportaudio-dev [i386 powerpc sparc amd64] , libwpd8-dev (>= 0.8.3-3) [i386 powerpc sparc amd64] , libicu36-dev [i386 powerpc sparc amd64] , libxslt1-dev [i386 powerpc sparc amd64] , libcairo2-dev [i386 powerpc sparc amd64], libglitz-glx1-dev [i386 powerpc sparc amd64] , mdbtools-dev (>= 0.5.99.0.6pre1.0.20050409-1) [i386 powerpc sparc amd64] , kdelibs4-dev (>= 4:3.4.3-2) [i386 powerpc sparc amd64] , libhsqldb-java (>= 1.8.0.0-2) [i386 powerpc sparc amd64] , bsh (>= 2.0b4-1) [i386 powerpc sparc amd64] , liblpsolve55-dev [i386 powerpc sparc amd64], libufsparse-dev [i386 powerpc sparc amd64] , libdbus-glib-1-dev (>= 0.60) [i386 powerpc sparc amd64] , libgstreamer-plugins-base0.10-dev [i386 powerpc sparc amd64] , libneon26-dev [i386 powerpc sparc amd64]
+Build-Depends: lsb-release, bzip2, bison (>= 1:1.875a-1) [i386 powerpc sparc amd64], flex [i386 powerpc sparc amd64], libpam0g-dev [i386 powerpc sparc amd64], libxaw7-dev [i386 powerpc sparc amd64], unzip [i386 powerpc sparc amd64], zip [i386 powerpc sparc amd64], autoconf [i386 powerpc sparc amd64], sharutils [i386 powerpc sparc amd64], libgtk2.0-dev [i386 powerpc sparc amd64], pkg-config [i386 powerpc sparc amd64], xutils [i386 powerpc sparc amd64], libfontconfig1-dev [i386 powerpc sparc amd64], binutils (>= 2.14.90.0.6-3) [sparc], libc6 (>= 2.3.2-1) [powerpc], zlib1g-dev [i386 powerpc sparc amd64], libfreetype6-dev [i386 powerpc sparc amd64], libaudio-dev [i386 powerpc sparc amd64], libx11-dev [i386 powerpc sparc amd64], libsm-dev [i386 powerpc sparc amd64], libxt-dev [i386 powerpc sparc amd64], libxext-dev [i386 powerpc sparc amd64], libice-dev [i386 powerpc sparc amd64], libsane-dev [i386 powerpc sparc amd64], libxrender-dev [i386 powerpc sparc amd64], libcupsys2-dev [i386 powerpc sparc amd64], libarchive-zip-perl [i386 powerpc sparc amd64], libstartup-notification0-dev [i386 powerpc sparc amd64], libpng12-dev [i386 powerpc sparc amd64], libjpeg62-dev [i386 powerpc sparc amd64], libxml2-dev [i386 powerpc sparc amd64], dmake (>= 1:4.6) [i386 powerpc sparc amd64], libldap2-dev [i386 powerpc sparc amd64], libexpat1-dev [i386 powerpc sparc amd64], libgnomevfs2-dev [i386 powerpc sparc amd64], fastjar [i386 powerpc sparc amd64], libsndfile1-dev [i386 powerpc sparc amd64], xsltproc [i386 powerpc sparc amd64], imagemagick [i386 powerpc sparc amd64], fdupes [i386 powerpc sparc amd64], xml-core [i386 powerpc sparc amd64], , libcurl3-openssl-dev [i386 powerpc sparc amd64] , libxkbfile-dev [i386 powerpc sparc amd64], libxinerama-dev [i386 powerpc sparc amd64], x11proto-render-dev [i386 powerpc sparc amd64] , unixodbc-dev (>= 2.2.11) [i386 powerpc sparc amd64] , libdb4.4-dev [i386 powerpc sparc amd64] , python-central (>= 0.5) [i386 powerpc sparc amd64], debhelper (>= 5.0.37.2), python-dev (>= 2.4) [i386 powerpc sparc amd64] , dpkg-dev (>= 1.13.19) , java-gcj-compat-dev (>= 1.0.65-4) [i386 powerpc sparc amd64] , ant (>= 1.6.5) [i386 powerpc sparc amd64] , libxt-java (>= 0.20050823) [i386 powerpc sparc amd64] , libxerces2-java [i386 powerpc sparc amd64] , libxalan2-java (>= 2.6.0-1) [i386 powerpc sparc amd64] , libdb4.4-java [i386 powerpc sparc amd64] , mingw32 [i386 powerpc sparc amd64] , libxul-dev [i386 powerpc sparc amd64], libnss3-dev [i386 powerpc sparc amd64] , libhunspell-dev (>= 1.0.8-3) [i386 powerpc sparc amd64] , libaltlinuxhyph-dev (>= 0.1.1-7) [i386 powerpc sparc amd64] , libstlport4.6-dev (>= 4.6.2-3) [i386 powerpc sparc amd64] , libboost-dev [i386 powerpc sparc amd64] , libportaudio-dev [i386 powerpc sparc amd64] , libwpd8-dev (>= 0.8.3-3) [i386 powerpc sparc amd64] , libicu36-dev [i386 powerpc sparc amd64] , libxslt1-dev [i386 powerpc sparc amd64] , libcairo2-dev [i386 powerpc sparc amd64], libglitz-glx1-dev [i386 powerpc sparc amd64] , mdbtools-dev (>= 0.5.99.0.6pre1.0.20050409-1) [i386 powerpc sparc amd64] , kdelibs4-dev (>= 4:3.4.3-2) [i386 powerpc sparc amd64] , libhsqldb-java (>= 1.8.0.0-2) [i386 powerpc sparc amd64] , bsh (>= 2.0b4-1) [i386 powerpc sparc amd64] , liblpsolve55-dev [i386 powerpc sparc amd64], libufsparse-dev [i386 powerpc sparc amd64] , libdbus-glib-1-dev (>= 0.60) [i386 powerpc sparc amd64] , libgstreamer-plugins-base0.10-dev [i386 powerpc sparc amd64] , libneon26-dev [i386 powerpc sparc amd64]
Standards-Version: 3.7.2
XS-Python-Version: current
diff -u openoffice.org-2.0.4.dfsg.2/debian/control.in openoffice.org-2.0.4.dfsg.2/debian/control.in
--- openoffice.org-2.0.4.dfsg.2/debian/control.in
+++ openoffice.org-2.0.4.dfsg.2/debian/control.in
@@ -35,7 +35,7 @@
libpng12-dev [%OOO_ARCHS%],
libjpeg62-dev [%OOO_ARCHS%],
libxml2-dev [%OOO_ARCHS%],
- dmake (>= 4.3-1) [%OOO_ARCHS%],
+ dmake (>= 1:4.6) [%OOO_ARCHS%],
libldap2-dev [%OOO_ARCHS%],
libexpat1-dev [%OOO_ARCHS%],
libgnomevfs2-dev [%OOO_ARCHS%],
diff -u openoffice.org-2.0.4.dfsg.2/debian/rules openoffice.org-2.0.4.dfsg.2/debian/rules
--- openoffice.org-2.0.4.dfsg.2/debian/rules
+++ openoffice.org-2.0.4.dfsg.2/debian/rules
@@ -405,11 +405,12 @@
CONFIGURE_FLAGS += --with-system-xalan
BUILD_DEPS += , libxalan2-java (>= 2.6.0-1) [$(OOO_JAVA_ARCHS)]
JAVA_COMMON_JAVA_DEPENDS+= , libxalan2-java (>= 2.6.0-1)
+ # force using system xml-apis.jar
+ SYSTEM_XML_APIS=YES
endif
ifeq "$(SYSTEM_XML_APIS)" "y"
CONFIGURE_FLAGS += --with-system-xml-apis
- BUILD_DEPS += , libjaxp1.2-java [$(OOO_JAVA_ARCHS)]
- JAVA_COMMON_JAVA_DEPENDS+= , libjaxp1.2-java
+ # xml-apis.jar is already a link in xalan, see above
endif
ifneq "$(SARGE_BACKPORT)" "y"
BUILD_DEPS += , libdb4.4-java [$(OOO_JAVA_ARCHS)]
@@ -2110,7 +2111,7 @@
$(PKGDIR)-java-common/usr/share/java/openoffice$(VER)/xalan.jar
endif
ifeq "$(SYSTEM_XML_APIS)" "y"
- ln -sf /usr/share/java/jaxp-1.2.jar \
+ ln -sf /usr/share/java/xml-apis.jar \
$(PKGDIR)-java-common/usr/share/java/openoffice$(VER)/xml-apis.jar
endif
ifeq "$(SYSTEM_XERCES)" "y"
@@ -2281,7 +2282,7 @@
# install free afms
cd $(PKGDIR)-common/$(OODIR)/share/psprint/fontmetric; \
tar xfvz $(CURDIR)/debian/Adobe-Core35_AFMs-314.tar.gz; \
- mv Adobe-Core35_AFMs-314/*.afm .; \
+ mv Adobe-Core35_AFMs-314/*.afm .; rm Helvetica-Narrow*.afm; \
rm -rf Adobe-Core35_AFMs-314
touch $@
@@ -2332,12 +2333,15 @@
dh_strip --dbg-package=openoffice.org$(VER)-dbg -Xunowinreg.dll
# somehow they are stripped...
rm -rf $(PKGDIR)-dbg/usr/lib/debug/$(OODIR)/sdk
+ # dh_strip --dbg-package= is not idempotent, force copying of the binaries
+ # again...
+ rm -f $(STAMP_DIR)/install-arch
else
dh_strip -Xunowinreg.dll
endif
dh_desktop
dh_installxmlcatalogs
- dh_compress
+ dh_compress -X.py -X.mk -X.sxd
dh_makeshlibs -n -V
dh_installdeb
cat debian/openoffice.org-core.shlibs.local > debian/shlibs.local
diff -u openoffice.org-2.0.4.dfsg.2/debian/README.Debian openoffice.org-2.0.4.dfsg.2/debian/README.Debian
--- openoffice.org-2.0.4.dfsg.2/debian/README.Debian
+++ openoffice.org-2.0.4.dfsg.2/debian/README.Debian
@@ -68,7 +68,7 @@
CUPS queues, and these can be set from within the printer properties dialog.
If you wish to add additional filters or print commands, you can add them
-using 'oopadmin'. Note that the 'Add a printer' option is disabled - you
+using 'spadmin'. Note that the 'Add a printer' option is disabled - you
should add printers using your favourite CUPS frontend.
When creating a new document, OOo will use the default paper size of your
@@ -80,7 +80,7 @@
There is a tool supplied with OpenOffice.org for setting up printers. You can
execute this with the command
- oopadmin
+ /usr/lib/openoffice/program/spadmin
To change the page size and other default settings on non-CUPS systems,
modify /etc/openoffice/psprint.conf. The settings are documented in there.
only in patch2:
unchanged:
--- openoffice.org-2.0.4.dfsg.2.orig/ooo-build/patches/src680/cws-cmcfixes30.diff
+++ openoffice.org-2.0.4.dfsg.2/ooo-build/patches/src680/cws-cmcfixes30.diff
@@ -0,0 +1,271 @@
+Index: sw/source/filter/ww8/ww8scan.cxx
+===================================================================
+RCS file: /cvs/sw/sw/source/filter/ww8/ww8scan.cxx,v
+retrieving revision 1.129
+retrieving revision 1.129.102.1
+diff -u -u -p -r1.129 -r1.129.102.1
+--- sw/source/filter/ww8/ww8scan.cxx 27 Sep 2006 10:52:20 -0000 1.129
++++ sw/source/filter/ww8/ww8scan.cxx 19 Dec 2006 10:15:07 -0000 1.129.102.1
+@@ -815,7 +815,7 @@ wwSprmParser::wwSprmParser(ww::WordVersi
+ SprmInfo wwSprmParser::GetSprmInfo(sal_uInt16 nId) const
+ {
+ // Find sprm
+- SprmInfo aSrch={0};
++ SprmInfo aSrch={0,0,0};
+ aSrch.nId = nId;
+ const SprmInfo* pFound = mpKnownSprms->search(aSrch);
+ if (pFound == 0)
+@@ -2234,8 +2234,8 @@ bool WW8PLCFspecial::GetData(long nInIdx
+
+ // Ctor fuer *andere* als Fkps
+ // Bei nStartPos < 0 wird das erste Element des PLCFs genommen
+-WW8PLCF::WW8PLCF( SvStream* pSt, long nFilePos, long nPLCF, long nStruct,
+- long nStartPos ) :nIdx( 0 ), nStru( nStruct )
++WW8PLCF::WW8PLCF( SvStream* pSt, WW8_FC nFilePos, INT32 nPLCF, int nStruct,
++ WW8_CP nStartPos ) : pPLCF_PosArray(0), nIdx(0), nStru(nStruct)
+ {
+ ASSERT( nPLCF, "WW8PLCF: nPLCF ist Null!" );
+
+@@ -2252,12 +2252,13 @@ WW8PLCF::WW8PLCF( SvStream* pSt, long nF
+ // != 0, dann wird ein unvollstaendiger PLCF vervollstaendigt. Das ist bei
+ // WW6 bei Resourcenmangel und bei WordPad (W95) immer noetig. Bei nStartPos
+ // < 0 wird das erste Element des PLCFs genommen
+-WW8PLCF::WW8PLCF( SvStream* pSt, long nFilePos, long nPLCF, long nStruct,
+- long nStartPos, long nPN, long ncpN ) :nIdx( 0 ), nStru( nStruct )
++WW8PLCF::WW8PLCF( SvStream* pSt, WW8_FC nFilePos, INT32 nPLCF, int nStruct,
++ WW8_CP nStartPos, INT32 nPN, INT32 ncpN ) : pPLCF_PosArray(0), nIdx(0),
++ nStru(nStruct)
+ {
+ nIMax = ( nPLCF - 4 ) / ( 4 + nStruct );
+
+- if( nIMax >= (long) ncpN )
++ if( nIMax >= ncpN )
+ ReadPLCF( pSt, nFilePos, nPLCF );
+ else
+ GeneratePLCF( pSt, nPN, ncpN );
+@@ -2266,12 +2267,12 @@ WW8PLCF::WW8PLCF( SvStream* pSt, long nF
+ SeekPos( nStartPos );
+ }
+
+-void WW8PLCF::ReadPLCF( SvStream* pSt, long nFilePos, long nPLCF )
++void WW8PLCF::ReadPLCF( SvStream* pSt, WW8_FC nFilePos, INT32 nPLCF )
+ {
+ // Pointer auf Pos-Array
+- pPLCF_PosArray = new INT32[ ( nPLCF + 3 ) / 4 ];
++ pPLCF_PosArray = new WW8_CP[ ( nPLCF + 3 ) / 4 ];
+
+- long nOldPos = pSt->Tell();
++ sal_Size nOldPos = pSt->Tell();
+
+ pSt->Seek( nFilePos );
+ pSt->Read( pPLCF_PosArray, nPLCF );
+@@ -2286,47 +2287,78 @@ void WW8PLCF::ReadPLCF( SvStream* pSt, l
+ pSt->Seek( nOldPos );
+ }
+
+-void WW8PLCF::GeneratePLCF( SvStream* pSt, long nPN, long ncpN )
++void WW8PLCF::GeneratePLCF( SvStream* pSt, INT32 nPN, INT32 ncpN )
+ {
+- ASSERT(!this, "Not a bug, but I (cmc) want to see this .doc as an example");
+- ASSERT( nIMax < (long)ncpN, "Pcl.Fkp: Warum ist PLCF zu gross ?" );
++ ASSERT( nIMax < ncpN, "Pcl.Fkp: Warum ist PLCF zu gross ?" );
++
++ bool failure = false;
+ nIMax = ncpN;
+- long nSiz = 6 * nIMax + 4;
+- pPLCF_PosArray = new INT32[ ( nSiz + 3 ) / 4 ]; // Pointer auf Pos-Array
+- memset( pPLCF_PosArray, 0, (size_t)nSiz );
+
+- INT32 nFc;
+- USHORT i;
++ if ((nIMax < 1) || (nIMax > (WW8_CP_MAX - 4)/6) || ((nPN + ncpN) > USHRT_MAX))
++ failure = true;
++
++ if (!failure)
++ {
++ size_t nSiz = 6 * nIMax + 4;
++ size_t nElems = ( nSiz + 3 ) / 4;
++ pPLCF_PosArray = new INT32[ nElems ]; // Pointer auf Pos-Array
++
++ for (INT32 i = 0; i < ncpN && !pSt->GetError(); ++i)
++ {
++ // Baue FC-Eintraege
++ pSt->Seek( ( nPN + i ) << 9 ); // erster FC-Eintrag jedes Fkp
++ WW8_CP nFc;
++ *pSt >> nFc;
++ pPLCF_PosArray[i] = nFc;
++ }
++
++ failure = pSt->GetError();
++ }
+
+- for (i = 0; i < ncpN; ++i)
++ if (!failure)
+ {
+- // Baue FC-Eintraege
+- pSt->Seek( ( nPN + i ) << 9 ); // erster FC-Eintrag jedes Fkp
++ sal_Size nLastFkpPos = ( ( nPN + nIMax - 1 ) << 9 );
++ pSt->Seek( nLastFkpPos + 511 ); // Anz. Fkp-Eintraege des letzten Fkp
++
++ BYTE nb;
++ *pSt >> nb;
++ pSt->Seek( nLastFkpPos + nb * 4 ); // letzer FC-Eintrag des letzten Fkp
++
++ WW8_CP nFc;
+ *pSt >> nFc;
+- pPLCF_PosArray[i] = nFc;
++ pPLCF_PosArray[nIMax] = nFc; // Ende des letzten Fkp
++
++ failure = pSt->GetError();
+ }
+- ULONG nLastFkpPos = ( ( nPN + nIMax - 1 ) << 9 );
+- pSt->Seek( nLastFkpPos + 511 ); // Anz. Fkp-Eintraege des letzten Fkp
+- BYTE nb;
+- *pSt >> nb;
+- pSt->Seek( nLastFkpPos + nb * 4 ); // letzer FC-Eintrag des letzten Fkp
+- *pSt >> nFc;
+- pPLCF_PosArray[nIMax] = nFc; // Ende des letzten Fkp
+
+- // Pointer auf Inhalts-Array
+- pPLCF_Contents = (BYTE*)&pPLCF_PosArray[nIMax + 1];
+- BYTE* p = pPLCF_Contents;
++ if (!failure)
++ {
++ // Pointer auf Inhalts-Array
++ pPLCF_Contents = (BYTE*)&pPLCF_PosArray[nIMax + 1];
++ BYTE* p = pPLCF_Contents;
++
++ for (INT32 i = 0; i < ncpN; ++i) // Baue PNs
++ {
++ ShortToSVBT16(static_cast<sal_uInt16>(nPN + i), p);
++ p+=2;
++ }
++ }
+
+- for (i = 0; i < ncpN; ++i) // Baue PNs
++ ASSERT( !failure, "Document has corrupt PLCF, ignoring it" );
++
++ if (failure)
+ {
+- ShortToSVBT16(static_cast<sal_uInt16>(nPN + i), p);
+- p+=2;
++ nIMax = 0;
++ delete[] pPLCF_PosArray;
++ pPLCF_PosArray = new INT32[2];
++ pPLCF_PosArray[0] = pPLCF_PosArray[1] = WW8_CP_MAX;
++ pPLCF_Contents = (BYTE*)&pPLCF_PosArray[nIMax + 1];
+ }
+ }
+
+-bool WW8PLCF::SeekPos(long nPos)
++bool WW8PLCF::SeekPos(WW8_CP nPos)
+ {
+- long nP = nPos;
++ WW8_CP nP = nPos;
+
+ if( nP < pPLCF_PosArray[0] )
+ {
+@@ -2339,8 +2371,8 @@ bool WW8PLCF::SeekPos(long nPos)
+ if( (1 > nIdx) || (nP < pPLCF_PosArray[ nIdx-1 ]) )
+ nIdx = 1;
+
+- long nI = nIdx ? nIdx : 1;
+- long nEnd = nIMax;
++ INT32 nI = nIdx ? nIdx : 1;
++ INT32 nEnd = nIMax;
+
+ for(int n = (1==nIdx ? 1 : 2); n; --n )
+ {
+@@ -2373,10 +2405,10 @@ bool WW8PLCF::Get(WW8_CP& rStart, WW8_CP
+ return true;
+ }
+
+-INT32 WW8PLCF::Where() const
++WW8_CP WW8PLCF::Where() const
+ {
+ if ( nIdx >= nIMax )
+- return SAL_MAX_INT32;
++ return WW8_CP_MAX;
+
+ return pPLCF_PosArray[nIdx];
+ }
+@@ -3842,13 +3874,12 @@ void WW8ReadSTTBF(bool bVer8, SvStream&
+ {
+ ww::bytes extraData;
+ sal_uInt8 iTmp;
+- for(int i =0;i < nExtraLen;i++)
++ for(int j = 0; j < nExtraLen; ++j)
+ {
+ rStrm >> iTmp;
+ extraData.push_back(iTmp);
+ }
+ pExtraArray->push_back(extraData);
+- int kSize = extraData.size();
+ }
+ else
+ rStrm.SeekRel( nExtraLen );
+Index: sw/source/filter/ww8/ww8scan.hxx
+===================================================================
+RCS file: /cvs/sw/sw/source/filter/ww8/ww8scan.hxx,v
+retrieving revision 1.77
+retrieving revision 1.77.376.1
+diff -u -u -p -r1.77 -r1.77.376.1
+--- sw/source/filter/ww8/ww8scan.hxx 16 Mar 2006 12:42:35 -0000 1.77
++++ sw/source/filter/ww8/ww8scan.hxx 19 Dec 2006 10:15:07 -0000 1.77.376.1
+@@ -295,39 +295,39 @@ private:
+ class WW8PLCF // Iterator fuer PLCFs
+ {
+ private:
+- INT32* pPLCF_PosArray; // Pointer auf Pos-Array und auf ganze Struktur
+- BYTE* pPLCF_Contents; // Pointer auf Inhalts-Array-Teil des Pos-Array
+- long nIMax; // Anzahl der Elemente
+- long nIdx;
+- long nStru;
++ WW8_CP* pPLCF_PosArray; // Pointer auf Pos-Array und auf ganze Struktur
++ BYTE* pPLCF_Contents; // Pointer auf Inhalts-Array-Teil des Pos-Array
++ INT32 nIMax; // Anzahl der Elemente
++ INT32 nIdx;
++ int nStru;
+
+- void ReadPLCF( SvStream* pSt, long nFilePos, long nPLCF );
++ void ReadPLCF( SvStream* pSt, WW8_FC nFilePos, INT32 nPLCF );
+
+ /*
+ Falls im Dok ein PLC fehlt und die FKPs solo dastehen,
+ machen wir uns hiermit einen PLC:
+ */
+- void GeneratePLCF( SvStream* pSt, long nPN, long ncpN );
++ void GeneratePLCF( SvStream* pSt, INT32 nPN, INT32 ncpN );
+ public:
+- WW8PLCF( SvStream* pSt, long nFilePos, long nPLCF, long nStruct,
+- long nStartPos = -1 );
++ WW8PLCF( SvStream* pSt, WW8_FC nFilePos, INT32 nPLCF, int nStruct,
++ WW8_CP nStartPos = -1 );
+
+ /*
+ folgender Ctor generiert ggfs. einen PLC aus nPN und ncpN
+ */
+- WW8PLCF( SvStream* pSt, long nFilePos, long nPLCF, long nStruct,
+- long nStartPos, long nPN, long ncpN );
++ WW8PLCF( SvStream* pSt, WW8_FC nFilePos, INT32 nPLCF, int nStruct,
++ WW8_CP nStartPos, INT32 nPN, INT32 ncpN );
+
+ ~WW8PLCF(){ delete[] pPLCF_PosArray; }
+- long GetIdx() const { return nIdx; }
+- void SetIdx( long nI ) { nIdx = nI; }
+- long GetIMax() const { return nIMax; }
+- bool SeekPos(long nPos);
+- INT32 Where() const;
++ INT32 GetIdx() const { return nIdx; }
++ void SetIdx( INT32 nI ) { nIdx = nI; }
++ INT32 GetIMax() const { return nIMax; }
++ bool SeekPos(WW8_CP nPos);
++ WW8_CP Where() const;
+ bool Get(WW8_CP& rStart, WW8_CP& rEnd, void*& rpValue) const;
+ WW8PLCF& operator ++( int ) { if( nIdx < nIMax ) nIdx++; return *this; }
+
+- const void* GetData( long nInIdx ) const
++ const void* GetData( INT32 nInIdx ) const
+ {
+ return ( nInIdx >= nIMax ) ? 0 :
+ (const void*)&pPLCF_Contents[nInIdx * nStru];
Attachment:
signature.asc
Description: Digital signature