Tag: cws_src680_dba202b User: oj Date: 05/11/28 00:53:10 Modified: /dba/connectivity/source/drivers/dbase/ DTable.cxx
Log: #127372# check if buffer is not null at pos inside buffer length 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.90&r2=1.90.20.1 Delta lines: +12 -5 -------------------- --- DTable.cxx 24 Oct 2005 08:20:50 -0000 1.90 +++ DTable.cxx 28 Nov 2005 08:53:07 -0000 1.90.20.1 @@ -4,9 +4,9 @@ * * $RCSfile: DTable.cxx,v $ * - * $Revision: 1.90 $ + * $Revision: 1.90.20.1 $ * - * last change: $Author: rt $ $Date: 2005/10/24 08:20:50 $ + * last change: $Author: oj $ $Date: 2005/11/28 08:53:07 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -650,7 +650,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 ;++aIter, i++) { // Laengen je nach Datentyp: sal_Int32 nLen; @@ -686,6 +686,7 @@ { // Nein - naechstes Feld. nByteOffset += nLen; + OSL_ENSURE( nByteOffset <= m_nBufferSize ,"ByteOffset > m_nBufferSize!"); continue; } @@ -782,6 +783,7 @@ // break; // Und weiter ... nByteOffset += nLen; + OSL_ENSURE( nByteOffset <= m_nBufferSize ,"ByteOffset > m_nBufferSize!"); } return sal_True; } @@ -1392,6 +1394,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: @@ -1464,7 +1469,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!"); @@ -1550,6 +1555,7 @@ { memset(pData,' ',nLen); // Zuruecksetzen auf NULL nByteOffset += nLen; + OSL_ENSURE( nByteOffset <= m_nBufferSize ,"ByteOffset > m_nBufferSize!"); continue; } @@ -1675,6 +1681,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]
