From 3a959349aca0d064373da680d4c79b66e551e04a Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Sun, 18 Mar 2012 02:00:09 +0100 Subject: [PATCH] q3map2: harden UNIX path sniffer against buffer overflows --- tools/quake3/q3map2/path_init.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/quake3/q3map2/path_init.c b/tools/quake3/q3map2/path_init.c index 5a31644a..901f07fc 100644 --- a/tools/quake3/q3map2/path_init.c +++ b/tools/quake3/q3map2/path_init.c @@ -114,7 +114,7 @@ void LokiInitPaths( char *argv0 ){ path = getenv( "PATH" ); /* do some path divining */ - strcpy( temp, argv0 ); + Q_strncpyz( temp, argv0, sizeof( temp ) ); if ( strrchr( temp, '/' ) ) { argv0 = strrchr( argv0, '/' ) + 1; } @@ -136,17 +136,17 @@ void LokiInitPaths( char *argv0 ){ /* found home dir candidate */ if ( *path == '~' ) { - strcpy( temp, home ); + Q_strncpyz( temp, home, sizeof( temp ) ); path++; } /* concatenate */ if ( last > ( path + 1 ) ) { - strncat( temp, path, ( last - path ) ); - strcat( temp, "/" ); + Q_strncat( temp, sizeof( temp ), path, ( last - path ) ); + Q_strcat( temp, sizeof( temp ), "/" ); } - strcat( temp, "./" ); - strcat( temp, argv0 ); + Q_strcat( temp, sizeof( temp ), "./" ); + Q_strcat( temp, sizeof( temp ), argv0 ); /* verify the path */ if ( access( temp, X_OK ) == 0 ) { -- 2.39.2