Fixed string null termination defects

This commit is contained in:
Robert Osfield
2016-06-20 17:35:25 +01:00
parent 3d43b775d2
commit 5e3c5a18c6

View File

@@ -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);