diff options
Diffstat (limited to 'connectivity/source/drivers/dbase/DTable.cxx')
-rw-r--r-- | connectivity/source/drivers/dbase/DTable.cxx | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/connectivity/source/drivers/dbase/DTable.cxx b/connectivity/source/drivers/dbase/DTable.cxx index 391a5edc05a8..b6ef20320f0c 100644 --- a/connectivity/source/drivers/dbase/DTable.cxx +++ b/connectivity/source/drivers/dbase/DTable.cxx @@ -323,8 +323,17 @@ void ODbaseTable::fillColumns() for (; i < nFieldCount; i++) { DBFColumn aDBFColumn; - sal_Size nRead = m_pFileStream->Read(&aDBFColumn, sizeof(aDBFColumn)); - if (nRead != sizeof(aDBFColumn)) +#if !defined(NDEBUG) + sal_uInt64 const nOldPos(m_pFileStream->Tell()); +#endif + m_pFileStream->Read(aDBFColumn.db_fnm, 11); + m_pFileStream->ReadUChar(aDBFColumn.db_typ); + m_pFileStream->ReadUInt32(aDBFColumn.db_adr); + m_pFileStream->ReadUChar(aDBFColumn.db_flng); + m_pFileStream->ReadUChar(aDBFColumn.db_dez); + m_pFileStream->Read(aDBFColumn.db_frei2, 14); + assert(m_pFileStream->GetError() || m_pFileStream->Tell() == nOldPos + sizeof(aDBFColumn)); + if (m_pFileStream->GetError()) { SAL_WARN("connectivity.drivers", "ODbaseTable::fillColumns: short read!"); break; |