Index: ext/libicpf/src/libicpf/file.cpp =================================================================== diff -u -N -rb337c059691a6940b52a86388ff427c734be8eb6 -r361d7f8b9268e18f39e298ea82425f7ddb24fb43 --- ext/libicpf/src/libicpf/file.cpp (.../file.cpp) (revision b337c059691a6940b52a86388ff427c734be8eb6) +++ ext/libicpf/src/libicpf/file.cpp (.../file.cpp) (revision 361d7f8b9268e18f39e298ea82425f7ddb24fb43) @@ -685,6 +685,8 @@ { // make sure everything is ok assert(m_bSerializing && m_pbySerialBuffer != NULL); + if(!m_pbySerialBuffer) + THROW(_t("Invalid argument"), GE_INVALIDARG, 0, 0); // check the operation type if ((m_uiFlags & FA_READ) && (m_uiFlags & FA_WRITE)) @@ -956,6 +958,8 @@ uint_t file::_read_packet() { assert(m_hFile); + if(!m_hFile || !m_pbyBuffer) + THROW(_t("Invalid argument"), GE_INVALIDARG, 0, 0); // read data #ifdef _WIN32 @@ -981,6 +985,8 @@ uint_t file::_write_packet() { assert(m_hFile); + if(!m_hFile || !m_pbyBuffer) + THROW(_t("Invalid argument"), GE_INVALIDARG, 0, 0); #ifdef _WIN32 DWORD wr=0;