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