connectivity/source/drivers/odbcbase/OResultSet.cxx |   14 +++++++-------
 connectivity/source/drivers/odbcbase/OStatement.cxx |   14 +++++++-------
 connectivity/source/inc/odbc/OResultSet.hxx         |    2 +-
 sw/source/filter/ww8/ww8scan.cxx                    |   18 +++++++++---------
 4 files changed, 24 insertions(+), 24 deletions(-)

New commits:
commit fb22e20d218e46eab5a3609db6e376a8f00ca904
Author: Lionel Elie Mamane <[email protected]>
Date:   Sun Jan 29 21:17:36 2012 +0100

    use proper sizes for SQL(Get|Set)StmtAttr
    
    Fixes fdo#34432 (driver smashes our stack on 64bits arch)
    
    Signed-off-by: Michael Meeks <[email protected]>
    Signed-off-by: Stephan Bergmann <[email protected]>
    Signed-off-by: Michael Stahl <[email protected]>

diff --git a/connectivity/source/drivers/odbcbase/OResultSet.cxx 
b/connectivity/source/drivers/odbcbase/OResultSet.cxx
index 1787744..e97b819 100644
--- a/connectivity/source/drivers/odbcbase/OResultSet.cxx
+++ b/connectivity/source/drivers/odbcbase/OResultSet.cxx
@@ -123,7 +123,7 @@ OResultSet::OResultSet(SQLHANDLE _pStatementHandle 
,OStatement_Base* pStmt) :
     catch(const Exception&)
     { // we don't want our result destroy here
     }
-    SQLINTEGER nCurType = 0;
+    SQLULEN nCurType = 0;
     try
     {
         
N3SQLGetStmtAttr(m_aStatementHandle,SQL_ATTR_CURSOR_TYPE,&nCurType,SQL_IS_UINTEGER,0);
@@ -1268,7 +1268,7 @@ Sequence< sal_Int32 > SAL_CALL OResultSet::deleteRows( 
const  Sequence<  Any >&
 
//------------------------------------------------------------------------------
 sal_Int32 OResultSet::getResultSetConcurrency() const
 {
-    sal_uInt32 nValue = 0;
+    SQLULEN nValue = 0;
     SQLRETURN nReturn = 
N3SQLGetStmtAttr(m_aStatementHandle,SQL_ATTR_CONCURRENCY,&nValue,SQL_IS_UINTEGER,0);
     OSL_UNUSED( nReturn );
     if(SQL_CONCUR_READ_ONLY == nValue)
@@ -1281,7 +1281,7 @@ sal_Int32 OResultSet::getResultSetConcurrency() const
 
//------------------------------------------------------------------------------
 sal_Int32 OResultSet::getResultSetType() const
 {
-    sal_uInt32 nValue = 0;
+    SQLULEN nValue = 0;
     
N3SQLGetStmtAttr(m_aStatementHandle,SQL_ATTR_CURSOR_SENSITIVITY,&nValue,SQL_IS_UINTEGER,0);
     if(SQL_SENSITIVE == nValue)
         nValue = ResultSetType::SCROLL_SENSITIVE;
@@ -1289,7 +1289,7 @@ sal_Int32 OResultSet::getResultSetType() const
         nValue = ResultSetType::SCROLL_INSENSITIVE;
     else
     {
-        SQLINTEGER nCurType = 0;
+        SQLULEN nCurType = 0;
         
N3SQLGetStmtAttr(m_aStatementHandle,SQL_ATTR_CURSOR_TYPE,&nCurType,SQL_IS_UINTEGER,0);
         if(SQL_CURSOR_KEYSET_DRIVEN == nCurType)
             nValue = ResultSetType::SCROLL_SENSITIVE;
@@ -1310,7 +1310,7 @@ sal_Int32 OResultSet::getFetchDirection() const
 
//------------------------------------------------------------------------------
 sal_Int32 OResultSet::getFetchSize() const
 {
-    sal_uInt32 nValue = 0;
+    SQLULEN nValue = 0;
     
N3SQLGetStmtAttr(m_aStatementHandle,SQL_ATTR_ROW_ARRAY_SIZE,&nValue,SQL_IS_UINTEGER,0);
     return nValue;
 }
@@ -1328,7 +1328,7 @@ sal_Bool  OResultSet::isBookmarkable() const
     if(!m_aConnectionHandle)
         return sal_False;
 
-    sal_uInt32 nValue = 0;
+    SQLULEN nValue = 0;
     
N3SQLGetStmtAttr(m_aStatementHandle,SQL_ATTR_CURSOR_TYPE,&nValue,SQL_IS_UINTEGER,0);
 
     sal_Int32 nAttr = 0;
@@ -1679,7 +1679,7 @@ sal_Bool OResultSet::move(IResultSetHelper::Movement 
_eCursorPosition, sal_Int32
 // 
-----------------------------------------------------------------------------
 sal_Int32 OResultSet::getDriverPos() const
 {
-    sal_Int32 nValue = 0;
+    SQLULEN nValue = 0;
     SQLRETURN nRet = 
N3SQLGetStmtAttr(m_aStatementHandle,SQL_ATTR_ROW_NUMBER,&nValue,SQL_IS_UINTEGER,0);
     OSL_UNUSED( nRet );
     OSL_TRACE( __FILE__": OResultSet::getDriverPos() = Ret = %d, RowNum = %d, 
RowPos = %d",nRet,nValue , m_nRowPos);
diff --git a/connectivity/source/drivers/odbcbase/OStatement.cxx 
b/connectivity/source/drivers/odbcbase/OStatement.cxx
index 1e8558c..d79e188 100644
--- a/connectivity/source/drivers/odbcbase/OStatement.cxx
+++ b/connectivity/source/drivers/odbcbase/OStatement.cxx
@@ -300,7 +300,7 @@ sal_Bool OStatement_Base::lockIfNecessary (const 
::rtl::OUString& sql) throw( SQ
         OSL_ENSURE(m_aStatementHandle,"StatementHandle is null!");
         try
         {
-            SQLINTEGER nLock = SQL_CONCUR_LOCK;
+            const SQLULEN nLock = SQL_CONCUR_LOCK;
             THROW_SQL(N3SQLSetStmtAttr(m_aStatementHandle, 
SQL_CONCURRENCY,(SQLPOINTER)(sal_IntPtr)nLock,SQL_IS_UINTEGER));
         }
         catch (const SQLWarning& warn)
@@ -683,7 +683,7 @@ sal_Int64 OStatement_Base::getMaxRows() const
 sal_Int32 OStatement_Base::getResultSetConcurrency() const
 {
     OSL_ENSURE(m_aStatementHandle,"StatementHandle is null!");
-    sal_uInt32 nValue;
+    SQLULEN nValue;
     SQLRETURN nRetCode = 
N3SQLGetStmtAttr(m_aStatementHandle,SQL_ATTR_CONCURRENCY,&nValue,SQL_IS_UINTEGER,0);
     OSL_UNUSED( nRetCode );
     if(nValue == SQL_CONCUR_READ_ONLY)
@@ -696,7 +696,7 @@ sal_Int32 OStatement_Base::getResultSetConcurrency() const
 sal_Int32 OStatement_Base::getResultSetType() const
 {
     OSL_ENSURE(m_aStatementHandle,"StatementHandle is null!");
-    sal_uInt32 nValue = SQL_CURSOR_FORWARD_ONLY;
+    SQLULEN nValue = SQL_CURSOR_FORWARD_ONLY;
     SQLRETURN nRetCode = 
N3SQLGetStmtAttr(m_aStatementHandle,SQL_ATTR_CURSOR_SENSITIVITY,&nValue,SQL_IS_UINTEGER,0);
     nRetCode = 
N3SQLGetStmtAttr(m_aStatementHandle,SQL_ATTR_CURSOR_TYPE,&nValue,SQL_IS_UINTEGER,0);
     OSL_UNUSED( nRetCode );
@@ -720,7 +720,7 @@ sal_Int32 OStatement_Base::getResultSetType() const
 sal_Int32 OStatement_Base::getFetchDirection() const
 {
     OSL_ENSURE(m_aStatementHandle,"StatementHandle is null!");
-    sal_uInt32 nValue = 0;
+    SQLULEN nValue = 0;
     SQLRETURN nRetCode = 
N3SQLGetStmtAttr(m_aStatementHandle,SQL_ATTR_CURSOR_SCROLLABLE,&nValue,SQL_IS_UINTEGER,0);
     OSL_UNUSED( nRetCode );
 
@@ -740,7 +740,7 @@ sal_Int32 OStatement_Base::getFetchDirection() const
 sal_Int32 OStatement_Base::getFetchSize() const
 {
     OSL_ENSURE(m_aStatementHandle,"StatementHandle is null!");
-    sal_uInt32 nValue;
+    SQLULEN nValue;
     SQLRETURN nRetCode = 
N3SQLGetStmtAttr(m_aStatementHandle,SQL_ATTR_ROW_ARRAY_SIZE,&nValue,SQL_IS_UINTEGER,0);
     OSL_UNUSED( nRetCode );
     return nValue;
@@ -904,7 +904,7 @@ void OStatement_Base::setCursorName(const ::rtl::OUString 
&_par0)
 sal_Bool OStatement_Base::isUsingBookmarks() const
 {
     OSL_ENSURE(m_aStatementHandle,"StatementHandle is null!");
-    sal_uInt32 nValue = SQL_UB_OFF;
+    SQLULEN nValue = SQL_UB_OFF;
     SQLRETURN nRetCode = 
N3SQLGetStmtAttr(m_aStatementHandle,SQL_ATTR_USE_BOOKMARKS,&nValue,SQL_IS_UINTEGER,NULL);
     OSL_UNUSED( nRetCode );
     return nValue != SQL_UB_OFF;
@@ -913,7 +913,7 @@ sal_Bool OStatement_Base::isUsingBookmarks() const
 sal_Bool OStatement_Base::getEscapeProcessing() const
 {
     OSL_ENSURE( m_aStatementHandle, "StatementHandle is null!" );
-    sal_uInt32 nValue = SQL_NOSCAN_OFF;
+    SQLULEN nValue = SQL_NOSCAN_OFF;
     SQLRETURN nRetCode = N3SQLGetStmtAttr( m_aStatementHandle, 
SQL_ATTR_NOSCAN, &nValue, SQL_IS_UINTEGER, NULL );
     (void)nRetCode;
     return nValue == SQL_NOSCAN_OFF;
diff --git a/connectivity/source/inc/odbc/OResultSet.hxx 
b/connectivity/source/inc/odbc/OResultSet.hxx
index bbb3920..e843e51 100644
--- a/connectivity/source/inc/odbc/OResultSet.hxx
+++ b/connectivity/source/inc/odbc/OResultSet.hxx
@@ -142,7 +142,7 @@ namespace connectivity
             rtl_TextEncoding                            m_nTextEncoding;
             sal_Int32                                   m_nRowPos;
             sal_Int32                                   m_nLastColumnPos;      
 // used for m_aRow just to know where we are
-            mutable sal_uInt32                          m_nUseBookmarks;
+            mutable SQLULEN                             m_nUseBookmarks;
             SQLRETURN                                   m_nCurrentFetchState;
             sal_Bool                                    m_bWasNull;
             sal_Bool                                    m_bEOF;                
 // after last record
commit a33715788ae5ae2498853f97a8e8e01e7f84108f
Author: LuboÅ¡ Luňák <[email protected]>
Date:   Mon Jan 30 19:07:43 2012 +0100

    query remaining stream size after seeking, not before (fdo#45255)
    
    Signed-off-by: Michael Meeks <[email protected]>
    (cherry picked from commit 6594688df45cb491042470c4ae5289c47192994a)
    
    Signed-off-by: Caolán McNamara <[email protected]>
    Signed-off-by: Michael Stahl <[email protected]>

diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx
index 9ef2ff9..b149478 100644
--- a/sw/source/filter/ww8/ww8scan.cxx
+++ b/sw/source/filter/ww8/ww8scan.cxx
@@ -1996,10 +1996,11 @@ WW8PLCFspecial::WW8PLCFspecial(SvStream* pSt, 
sal_uInt32 nFilePos,
     const sal_uInt32 nValidMin=4;
 
     sal_Size nOldPos = pSt->Tell();
-    sal_Size nRemainingSize = pSt->remainingSize();
 
-    bool bValid = checkSeek(*pSt, nFilePos) && (nRemainingSize >= nValidMin) &&
-        (nPLCF >= nValidMin);
+    bool bValid = checkSeek(*pSt, nFilePos);
+    sal_Size nRemainingSize = pSt->remainingSize();
+    if( !(nRemainingSize >= nValidMin && nPLCF >= nValidMin ))
+        bValid = false;
     nPLCF = bValid ? std::min(nRemainingSize, static_cast<sal_Size>(nPLCF)) : 
nValidMin;
 
     // Pointer auf Pos- u. Struct-Array
@@ -2154,9 +2155,7 @@ WW8PLCF::WW8PLCF(SvStream& rSt, WW8_FC nFilePos, 
sal_Int32 nPLCF, int nStruct,
 void WW8PLCF::ReadPLCF(SvStream& rSt, WW8_FC nFilePos, sal_uInt32 nPLCF)
 {
     sal_Size nOldPos = rSt.Tell();
-    sal_Size nRemainingSize = rSt.remainingSize();
-
-    bool bValid = checkSeek(rSt, nFilePos) && (nRemainingSize >= nPLCF);
+    bool bValid = checkSeek(rSt, nFilePos) && (rSt.remainingSize() >= nPLCF);
 
     if (bValid)
     {
@@ -2335,10 +2334,11 @@ WW8PLCFpcd::WW8PLCFpcd(SvStream* pSt, sal_uInt32 
nFilePos,
     const sal_uInt32 nValidMin=4;
 
     sal_Size nOldPos = pSt->Tell();
-    sal_Size nRemainingSize = pSt->remainingSize();
 
-    bool bValid = checkSeek(*pSt, nFilePos) && (nRemainingSize >= nValidMin) &&
-        (nPLCF >= nValidMin);
+    bool bValid = checkSeek(*pSt, nFilePos);
+    sal_Size nRemainingSize = pSt->remainingSize();
+    if( !(nRemainingSize >= nValidMin && nPLCF >= nValidMin ))
+        bValid = false;
     nPLCF = bValid ? std::min(nRemainingSize, static_cast<sal_Size>(nPLCF)) : 
nValidMin;
 
     pPLCF_PosArray = new sal_Int32[ ( nPLCF + 3 ) / 4 ];    // Pointer auf 
Pos-Array
_______________________________________________
Libreoffice-commits mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to