Index: src/ch/ExceptionEx.h =================================================================== diff -u -N -r4c272b19c74694c428c943011f279ec064fbd894 -rebabad67cdda34ed4e36ab794e10d0ade8124bf3 --- src/ch/ExceptionEx.h (.../ExceptionEx.h) (revision 4c272b19c74694c428c943011f279ec064fbd894) +++ src/ch/ExceptionEx.h (.../ExceptionEx.h) (revision ebabad67cdda34ed4e36ab794e10d0ade8124bf3) @@ -100,11 +100,15 @@ // helpers static TCHAR* FormatReason(PCTSTR pszReason, ...) { - TCHAR szBuf[1024]; + const size_t stMaxReason = 1024; + TCHAR szBuf[stMaxReason]; + va_list marker; va_start(marker, pszReason); - _vsntprintf(szBuf, 1024, pszReason, marker); + _vsntprintf(szBuf, stMaxReason - 1, pszReason, marker); + szBuf[stMaxReason - 1] = _T('\0'); va_end(marker); + TCHAR *pszData=new TCHAR[_tcslen(szBuf)+1]; _tcscpy(pszData, szBuf); return pszData; @@ -113,6 +117,8 @@ // formats max info about this exception virtual TCHAR* GetInfo(LPCTSTR pszDesc, TCHAR* pszStr, DWORD dwMaxLen) { + const size_t stMaxData = 1024; + // get the properties int iCount=RegisterInfo(NULL); __EXCPROPINFO *pepi=new __EXCPROPINFO[iCount]; @@ -130,7 +136,7 @@ size_t tIndex=_tcslen(pszStr); // format the info accordingly - TCHAR szData[1024]; + TCHAR szData[stMaxData]; for (int i=0;i