Treat large argument as error in UpnpAddVirtualDir.

(cherry picked from commit e4678168fa8564e788293ef764dc3265f89484bc)
This commit is contained in:
Yoichi NAKAYAMA 2012-03-11 01:40:48 +09:00 committed by Marcelo Roberto Jimenez
parent 17e1f6aa09
commit 37b0afe1dc
2 changed files with 5 additions and 0 deletions

View File

@ -322,6 +322,7 @@ Version 1.6.16
Further measures against buffer overflows. Further measures against buffer overflows.
Treat large argument as error in UpnpAddVirtualDir.
Do not clear buffer before snprintf. Do not clear buffer before snprintf.
2012-03-10 Yoichi NAKAYAMA <yoichi.nakayama(at)gmail.com> 2012-03-10 Yoichi NAKAYAMA <yoichi.nakayama(at)gmail.com>

View File

@ -3979,9 +3979,13 @@ int UpnpAddVirtualDir(const char *newDirName)
} }
if( *newDirName != '/' ) { if( *newDirName != '/' ) {
if (strlen(newDirName) > sizeof(dirName) - 2)
return UPNP_E_INVALID_PARAM;
dirName[0] = '/'; dirName[0] = '/';
strncpy( dirName + 1, newDirName, sizeof( dirName ) - 2 ); strncpy( dirName + 1, newDirName, sizeof( dirName ) - 2 );
} else { } else {
if (strlen(newDirName) > sizeof(dirName) - 1)
return UPNP_E_INVALID_PARAM;
strncpy( dirName, newDirName, sizeof( dirName ) - 1 ); strncpy( dirName, newDirName, sizeof( dirName ) - 1 );
} }