Tag: cws_src680_warnings01
User: sb      
Date: 06/01/25 12:48:54

Modified:
 /dba/connectivity/source/drivers/dbase/
  DTable.cxx

Log:
 RESYNC: (1.90-1.91); FILE MERGED

File Changes:

Directory: /dba/connectivity/source/drivers/dbase/
==================================================

File [changed]: DTable.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/dbase/DTable.cxx?r1=1.89.16.4&r2=1.89.16.5
Delta lines:  +13 -6
--------------------
--- DTable.cxx  22 Dec 2005 11:44:41 -0000      1.89.16.4
+++ DTable.cxx  25 Jan 2006 20:48:51 -0000      1.89.16.5
@@ -652,7 +652,7 @@
        sal_Int32 nByteOffset = 1;
        // Felder:
        OSQLColumns::const_iterator aIter = _rCols.begin();
-       for (sal_Int32 i = 1; aIter != _rCols.end();++aIter, i++)
+       for (sal_Int32 i = 1; aIter != _rCols.end() && nByteOffset <= 
m_nBufferSize && i < _rRow->size();++aIter, i++)
        {
                // Laengen je nach Datentyp:
                sal_Int32 nLen;
@@ -684,10 +684,11 @@
                }
 
                // Ist die Variable ueberhaupt gebunden?
-               if (!(*_rRow)[i]->isBound())
+               if ( !(*_rRow)[i]->isBound() )
                {
                        // Nein - naechstes Feld.
                        nByteOffset += nLen;
+                       OSL_ENSURE( nByteOffset <= m_nBufferSize ,"ByteOffset > 
m_nBufferSize!");
                        continue;
                }
 
@@ -784,6 +785,7 @@
 //                     break;
                // Und weiter ...
                nByteOffset += nLen;
+               OSL_ENSURE( nByteOffset <= m_nBufferSize ,"ByteOffset > 
m_nBufferSize!");
        }
        return sal_True;
 }
@@ -1394,6 +1396,9 @@
 //------------------------------------------------------------------
 BOOL ODbaseTable::UpdateBuffer(OValueRefVector& rRow, OValueRefRow 
pOrgRow,const Reference<XIndexAccess>& _xCols)
 {
+       OSL_ENSURE(m_pBuffer,"Buffer is NULL!");
+       if ( !m_pBuffer )
+               return FALSE;
        sal_Int32 nByteOffset  = 1;
 
        // Felder aktualisieren:
@@ -1466,7 +1471,7 @@
 
        // when we are here there is no double key in the table
 
-       for (i = 0; i < nColumnCount; ++i)
+       for (i = 0; i < nColumnCount && nByteOffset <= m_nBufferSize ; ++i)
        {
                // Laengen je nach Datentyp:
                OSL_ENSURE(i < m_aPrecisions.size(),"Illegal index!");
@@ -1552,6 +1557,7 @@
                {
                        memset(pData,' ',nLen); // Zuruecksetzen auf NULL
                        nByteOffset += nLen;
+                       OSL_ENSURE( nByteOffset <= m_nBufferSize ,"ByteOffset > 
m_nBufferSize!");
                        continue;
                }
 
@@ -1677,6 +1683,7 @@
                }
                // Und weiter ...
                nByteOffset += nLen;
+               OSL_ENSURE( nByteOffset <= m_nBufferSize ,"ByteOffset > 
m_nBufferSize!");
        }
        return sal_True;
 }




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to