Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=3bb9c71edcd3132db806c75cb7a6368b45e71e57

commit 3bb9c71edcd3132db806c75cb7a6368b45e71e57
Author: Miklos Vajna <[email protected]>
Date:   Wed Aug 25 11:08:36 2010 +0200

openoffice.org-3.2.1-5-i686

- add SA40775.diff, closes #4296
- disable broken smp build in non-devel builds
- use openjdk in non-devel builds as well to fix sdk package

diff --git a/source/xapps/openoffice.org/FrugalBuild 
b/source/xapps/openoffice.org/FrugalBuild
index 74d0779..b8c3bcc 100644
--- a/source/xapps/openoffice.org/FrugalBuild
+++ b/source/xapps/openoffice.org/FrugalBuild
@@ -10,7 +10,7 @@ if ! Fuse $USE_DEVEL; then
tree=ooo320
milestone=19
pkgver=$upstream
-       pkgrel=4
+       pkgrel=5
snapshot=4-23-ge68b7f9
else
upstream=3.3.0
@@ -40,8 +40,8 @@ groups=('xapps')
archs=('i686' 'x86_64')
if ! Fuse $USE_DEVEL; then
up2date="lynx -dump http://download.openoffice.org/source/|grep Source|sed 
's/.* \(.*\) .*/\1/;q'"
-       
source=(http://ftp.frugalware.org/pub/other/sources/ooo-build/ooo-build$branch-$snapshot.tar.bz2
 
http://git.frugalware.org/tarballs/openoffice.org/$tree-m$milestone-{artwork,base,bootstrap,calc,components,extras,filters,help,impress,libs-gui,libs-core,libs-extern,postprocess,sdk,testing,ure,writer,libs-extern-sys,extensions,l10n}.tar.bz2)
-       signatures=($source.asc '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 
'' '' '' '')
+       
source=(http://ftp.frugalware.org/pub/other/sources/ooo-build/ooo-build$branch-$snapshot.tar.bz2
 
http://git.frugalware.org/tarballs/openoffice.org/$tree-m$milestone-{artwork,base,bootstrap,calc,components,extras,filters,help,impress,libs-gui,libs-core,libs-extern,postprocess,sdk,testing,ure,writer,libs-extern-sys,extensions,l10n}.tar.bz2
 SA40775.diff)
+       signatures=($source.asc '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 
'' '' '' '' '')
else
unset source signatures
_F_scm_type="git"
@@ -155,7 +155,12 @@ build()
if ! Fuse $USE_DEVEL; then
Fextract ooo-build$branch-$snapshot.tar.bz2
Fcd ooo-build$branch-$snapshot
-               #cp -fv $Fsrcdir/mono24-hack patches/hotfixes/mono24-hack.diff 
|| Fdie
+
+               # Hotfixes
+               for i in $Fsrcdir/*.diff
+               do
+                       ln -sf $i patches/hotfixes/ || Fdie
+               done

# Predownloaded tarballs
for i in $Fsrcdir/$tree-m$milestone-*
@@ -176,10 +181,8 @@ build()
done
fi

-       Fpatchall
-
# SMP build
-       if [ ! -z "$MAKEFLAGS" ]; then
+       if Fuse $USE_DEVEL && [ ! -z "$MAKEFLAGS" ]; then
# Comment this out if you think the build failed because of being SMP.
Fconfopts="$Fconfopts --with-max-jobs=${MAKEFLAGS/-j}"
unset MAKEFLAGS
@@ -205,7 +208,12 @@ build()

if ! Fuse $USE_DEVEL; then
Fconf --with-lang=ALL --without-git \
-                       
--with-build-version="openoffice.org-$pkgver-$pkgrel-$CARCH 
(ooo-build-${snapshot##*g})"
+                       
--with-build-version="openoffice.org-$pkgver-$pkgrel-$CARCH 
(ooo-build-${snapshot##*g})" \
+                       --with-jdk-home=/usr/lib/jvm/java-6-openjdk \
+                       --with-java-target-version=1.5 \
+                       --with-system-lucene \
+                       --with-lucene-core-jar=/usr/share/java/lucene-core.jar \
+                       
--with-lucene-analyzers-jar=/usr/share/java/lucene-analyzers.jar
else
Fconf --with-lang="en-US de es fr hu it pt"
fi
diff --git a/source/xapps/openoffice.org/SA40775.diff 
b/source/xapps/openoffice.org/SA40775.diff
new file mode 100644
index 0000000..dbed40a
--- /dev/null
+++ b/source/xapps/openoffice.org/SA40775.diff
@@ -0,0 +1,204 @@
+diff -r 5b1ceed28385 sd/source/filter/ppt/propread.cxx
+--- sd/source/filter/ppt/propread.cxx  Fri Aug 06 14:53:07 2010 +0200
++++ sd/source/filter/ppt/propread.cxx  Mon Aug 09 14:04:21 2010 +0200
+@@ -29,6 +29,7 @@
+ #include "precompiled_sd.hxx"
+ #include <propread.hxx>
+ #include <tools/bigint.hxx>
++#include "tools/debug.hxx"
+ #include "rtl/tencinfo.h"
+ #include "rtl/textenc.h"
+
+@@ -90,6 +91,17 @@
+
+ //    -----------------------------------------------------------------------
+
++static xub_StrLen lcl_getMaxSafeStrLen(sal_uInt32 nSize)
++{
++      nSize -= 1; //Drop NULL terminator
++
++      //If it won't fit in a string, clip it to the max size that does
++    if (nSize > STRING_MAXLEN)
++              nSize = STRING_MAXLEN;
++
++      return nSize;
++}
++
+ BOOL PropItem::Read( String& rString, sal_uInt32 nStringType, sal_Bool bAlign 
)
+ {
+       sal_uInt32      i, nItemSize, nType, nItemPos;
+@@ -108,36 +120,43 @@
+       {
+               case VT_LPSTR :
+               {
+-                      if ( (sal_uInt16)nItemSize )
++                      if ( nItemSize )
+                       {
+-                              sal_Char* pString = new sal_Char[ 
(sal_uInt16)nItemSize ];
+-                              if ( mnTextEnc == RTL_TEXTENCODING_UCS2 )
++                              try
+                               {
+-                                      nItemSize >>= 1;
+-                                      if ( (sal_uInt16)nItemSize > 1 )
++                                      sal_Char* pString = new sal_Char[ 
nItemSize ];
++                                      if ( mnTextEnc == RTL_TEXTENCODING_UCS2 
)
+                                       {
+-                                              sal_Unicode* pWString = 
(sal_Unicode*)pString;
+-                                              for ( i = 0; i < 
(sal_uInt16)nItemSize; i++ )
+-                                                      *this >> pWString[ i ];
+-                                              rString = String( pWString, 
(sal_uInt16)nItemSize - 1 );
+-                                      }
+-                                      else
+-                                              rString = String();
+-                                      bRetValue = sal_True;
+-                              }
+-                              else
+-                              {
+-                                      SvMemoryStream::Read( pString, 
(sal_uInt16)nItemSize );
+-                                      if ( pString[ (sal_uInt16)nItemSize - 1 
] == 0 )
+-                                      {
+-                                              if ( (sal_uInt16)nItemSize > 1 )
+-                                                      rString = String( 
ByteString( pString ), mnTextEnc );
++                                              nItemSize >>= 1;
++                                              if ( nItemSize > 1 )
++                                              {
++                                                      sal_Unicode* pWString = 
(sal_Unicode*)pString;
++                                                      for ( i = 0; i < 
nItemSize; i++ )
++                                                              *this >> 
pWString[ i ];
++                                                      rString = String( 
pWString, lcl_getMaxSafeStrLen(nItemSize) );
++                                              }
+                                               else
+                                                       rString = String();
+                                               bRetValue = sal_True;
+                                       }
++                                      else
++                                      {
++                                              SvMemoryStream::Read( pString, 
nItemSize );
++                                              if ( pString[ nItemSize - 1 ] 
== 0 )
++                                              {
++                                                      if ( nItemSize > 1 )
++                                                              rString = 
String( ByteString( pString ), mnTextEnc );
++                                                      else
++                                                              rString = 
String();
++                                                      bRetValue = sal_True;
++                                              }
++                                      }
++                                      delete[] pString;
+                               }
+-                              delete[] pString;
++                              catch( const std::bad_alloc& )
++                              {
++                                      DBG_ERROR( "sd PropItem::Read bad 
alloc" );
++                              }
+                       }
+                       if ( bAlign )
+                               SeekRel( ( 4 - ( nItemSize & 3 ) ) & 3 );       
        // dword align
+@@ -148,18 +167,25 @@
+               {
+                       if ( nItemSize )
+                       {
+-                              sal_Unicode* pString = new sal_Unicode[ 
(sal_uInt16)nItemSize ];
+-                              for ( i = 0; i < (sal_uInt16)nItemSize; i++ )
+-                                      *this >> pString[ i ];
+-                              if ( pString[ i - 1 ] == 0 )
++                              try
+                               {
+-                                      if ( (sal_uInt16)nItemSize > 1 )
+-                                              rString = String( pString, 
(sal_uInt16)nItemSize - 1 );
+-                                      else
+-                                              rString = String();
+-                                      bRetValue = sal_True;
++                                      sal_Unicode* pString = new sal_Unicode[ 
nItemSize ];
++                                      for ( i = 0; i < nItemSize; i++ )
++                                              *this >> pString[ i ];
++                                      if ( pString[ i - 1 ] == 0 )
++                                      {
++                                              if ( (sal_uInt16)nItemSize > 1 )
++                                                      rString = String( 
pString, lcl_getMaxSafeStrLen(nItemSize) );
++                                              else
++                                                      rString = String();
++                                              bRetValue = sal_True;
++                                      }
++                                      delete[] pString;
+                               }
+-                              delete[] pString;
++                              catch( const std::bad_alloc& )
++                              {
++                                      DBG_ERROR( "sd PropItem::Read bad 
alloc" );
++                              }
+                       }
+                       if ( bAlign && ( nItemSize & 1 ) )
+                               SeekRel( 2 );                                   
                // dword align
+@@ -349,24 +375,31 @@
+               for ( sal_uInt32 i = 0; i < nDictCount; i++ )
+               {
+                       aStream >> nId >> nSize;
+-                      if ( (sal_uInt16)nSize )
++                      if ( nSize )
+                       {
+                               String aString;
+                               nPos = aStream.Tell();
+-                              sal_Char* pString = new sal_Char[ 
(sal_uInt16)nSize ];
+-                              aStream.Read( pString, (sal_uInt16)nSize );
+-                              if ( mnTextEnc == RTL_TEXTENCODING_UCS2 )
++                              try
+                               {
+-                                      nSize >>= 1;
+-                                      aStream.Seek( nPos );
+-                                      sal_Unicode* pWString = 
(sal_Unicode*)pString;
+-                                      for ( i = 0; i < (sal_uInt16)nSize; i++ 
)
+-                                              aStream >> pWString[ i ];
+-                                      aString = String( pWString, 
(sal_uInt16)nSize - 1 );
++                                      sal_Char* pString = new sal_Char[ nSize 
];
++                                      aStream.Read( pString, nSize );
++                                      if ( mnTextEnc == RTL_TEXTENCODING_UCS2 
)
++                                      {
++                                              nSize >>= 1;
++                                              aStream.Seek( nPos );
++                                              sal_Unicode* pWString = 
(sal_Unicode*)pString;
++                                              for ( i = 0; i < nSize; i++ )
++                                                      aStream >> pWString[ i 
];
++                                              aString = String( pWString, 
lcl_getMaxSafeStrLen(nSize) );
++                                      }
++                                      else
++                                              aString = String( ByteString( 
pString, lcl_getMaxSafeStrLen(nSize) ), mnTextEnc );
++                                      delete[] pString;
+                               }
+-                              else
+-                                      aString = String( ByteString( pString, 
(sal_uInt16)nSize - 1 ), mnTextEnc );
+-                              delete[] pString;
++                              catch( const std::bad_alloc& )
++                              {
++                                      DBG_ERROR( "sd Section::GetDictionary 
bad alloc" );
++                              }
+                               if ( !aString.Len() )
+                                       break;
+                               aDict.AddProperty( nId, aString );
+@@ -502,6 +502,11 @@
+                       }
+                       if ( nPropSize )
+                       {
++                              if ( nPropSize > nStrmSize )
++                              {
++                                      nPropCount = 0;
++                                      break;
++                              }
+                               pStrm->Seek( nPropOfs + nSecOfs );
+                               // make sure we don't overflow the section size
+                               if( nPropSize > nSecSize - nSecOfs )
+diff -r 5b1ceed28385 tools/source/generic/poly.cxx
+--- tools/source/generic/poly.cxx      Fri Aug 06 14:53:07 2010 +0200
++++ tools/source/generic/poly.cxx      Mon Aug 09 14:04:21 2010 +0200
+@@ -243,6 +243,11 @@
+ void ImplPolygon::ImplSplit( USHORT nPos, USHORT nSpace, ImplPolygon* 
pInitPoly )
+ {
+       const ULONG     nSpaceSize = nSpace * sizeof( Point );
++
++      //Can't fit this in :-(, throw ?
++      if (mnPoints + nSpace > USHRT_MAX)
++              return;
++
+       const USHORT    nNewSize = mnPoints + nSpace;
+
+       if( nPos >= mnPoints )
+
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to