Index: ext/libicpf/src/libicpf/circ_buffer.cpp =================================================================== diff -u -N -rb337c059691a6940b52a86388ff427c734be8eb6 -r361d7f8b9268e18f39e298ea82425f7ddb24fb43 --- ext/libicpf/src/libicpf/circ_buffer.cpp (.../circ_buffer.cpp) (revision b337c059691a6940b52a86388ff427c734be8eb6) +++ ext/libicpf/src/libicpf/circ_buffer.cpp (.../circ_buffer.cpp) (revision 361d7f8b9268e18f39e298ea82425f7ddb24fb43) @@ -21,6 +21,8 @@ #include #include #include +#include "err_codes.h" +#include "exception.h" BEGIN_ICPF_NAMESPACE @@ -267,6 +269,9 @@ int circular_buffer::forward_seek(ulong_t ulFnd) { assert(m_pbyBuffer); + if(!m_pbyBuffer) + THROW(_t("Invalid member"), GE_INVALIDARG, 0, 0); + if (m_tDataSize < sizeof(ulong_t)) return FS_PARTIAL; // cannot tell if there is such a value (may be a part of it) @@ -471,7 +476,9 @@ assert(m_pbyBuffer); assert(ulBitsCount >= 1 && ulBitsCount <=8); assert(pfn); - + if(!pfn || ! m_pbyBuffer || ulBitsCount < 1 || ulBitsCount > 8) + THROW(_t("Invalid member or argument"), GE_INVALIDARG, 0, 0); + ushort_t w=0; // internal buffer for the next data from the class's buffer ulong_t ulBits=0; // count of bits that was left in w