From 5e3c5a18c6a98dbd4e7b27e399a2e3fafc165e0b Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Mon, 20 Jun 2016 17:35:25 +0100 Subject: [PATCH] Fixed string null termination defects --- src/osgPlugins/zip/unzip.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/osgPlugins/zip/unzip.cpp b/src/osgPlugins/zip/unzip.cpp index 108f99630..ecc0a9d99 100644 --- a/src/osgPlugins/zip/unzip.cpp +++ b/src/osgPlugins/zip/unzip.cpp @@ -4058,7 +4058,7 @@ ZRESULT TUnzip::Get(int index,ZIPENTRY *ze) } #ifdef ZIP_STD - strncpy(ze->name,sfn,MAX_PATH); + strncpy(ze->name,sfn,MAX_PATH-1); ze->name[MAX_PATH-1] = 0; #else _tcsncpy_s(ze->name,MAX_PATH, sfn,MAX_PATH); #endif @@ -4147,7 +4147,7 @@ ZRESULT TUnzip::Find(const TCHAR *tname,bool ic,int *index,ZIPENTRY *ze) WideCharToMultiByte(CP_UTF8,0,tname,-1,name,MAX_PATH,0,0); #else // strcpy_s(name,MAX_PATH,tname); - strncpy(name,tname, MAX_PATH); + strncpy(name,tname, MAX_PATH-1); name[MAX_PATH-1] = 0; #endif int res = unzLocateFile(uf,name,ic?CASE_INSENSITIVE:CASE_SENSITIVE); if (res!=UNZ_OK) @@ -4309,7 +4309,7 @@ ZRESULT TUnzip::Unzip(int index,void *dst,unsigned int len,DWORD flags) #ifdef ZIP_STD size_t dirlen=_tcslen(dir); - strncpy(fn,dir,MAX_PATH); + strncpy(fn,dir,MAX_PATH-1); fn[MAX_PATH-1] = 0; strncpy(fn+dirlen,name,MAX_PATH-dirlen); #else _tsprintf(fn,MAX_PATH,_T("%s%s"),dir,name);