Index: ext/libicpf/src/libicpf/cfg.cpp =================================================================== diff -u -N -r3150d0c0a9a5fe75a5954e17a5a445a14e0bea1f -r42fda86dd6448c89e6db68e0df8741e9ad5269f1 --- ext/libicpf/src/libicpf/cfg.cpp (.../cfg.cpp) (revision 3150d0c0a9a5fe75a5954e17a5a445a14e0bea1f) +++ ext/libicpf/src/libicpf/cfg.cpp (.../cfg.cpp) (revision 42fda86dd6448c89e6db68e0df8741e9ad5269f1) @@ -597,12 +597,16 @@ m_lock.unlock(); THROW(_t("Index out of range"), 0, 0, 0); } + size_t stLen = 0; const tchar_t* psz=m_pvProps->at(uiProp).get_string(stIndex); - size_t stLen = _tcslen(psz); - if(stLen >= stBufferSize) - stLen = stBufferSize - 1; - - _tcsncpy(pszBuffer, psz, stLen); + if(psz) + { + stLen = _tcslen(psz); + if(stLen >= stBufferSize) + stLen = stBufferSize - 1; + + _tcsncpy(pszBuffer, psz, stLen); + } pszBuffer[stLen] = _t('\0'); m_lock.unlock(); return pszBuffer;