From: Timothee Besset <ttimo@ttimo.net>
Date: Mon, 22 Jan 2018 15:03:45 +0000 (-0600)
Subject: fix pk3dir/dpk/dpkdir code
X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=refs%2Fmerge-requests%2F81%2Fhead;p=xonotic%2Fnetradiant.git

fix pk3dir/dpk/dpkdir code
---

diff --git a/tools/quake3/common/vfs.c b/tools/quake3/common/vfs.c
index 775f9bd0..65a8b6f4 100644
--- a/tools/quake3/common/vfs.c
+++ b/tools/quake3/common/vfs.c
@@ -224,18 +224,18 @@ void vfsInitDirectory( const char *path ){
 				{
 					char *ext = strrchr( dirlist, '.' );
 
-					if ( ext && ( !Q_stricmp( ext, ".pk3dir" ) || !Q_stricmp( ext, ".dpkdir" ) ) ) {
+					if ( ext != NULL && ( !Q_stricmp( ext, ".pk3dir" ) || !Q_stricmp( ext, ".dpkdir" ) ) ) {
 						if ( g_numDirs == VFS_MAXDIRS ) {
 							continue;
 						}
 						snprintf( g_strDirs[g_numDirs], PATH_MAX, "%s/%s", path, name );
-						g_strDirs[g_numDirs][PATH_MAX] = '\0';
+						g_strDirs[g_numDirs][PATH_MAX-1] = '\0';
 						vfsFixDOSName( g_strDirs[g_numDirs] );
 						vfsAddSlash( g_strDirs[g_numDirs] );
 						++g_numDirs;
 					}
 
-					if ( ( ext == NULL ) || ( Q_stricmp( ext, ".pk3" ) != 0 || !Q_stricmp( ext, ".dpk" ) != 0 ) ) {
+					if ( ext == NULL || ( Q_stricmp( ext, ".pk3" ) != 0 && Q_stricmp( ext, ".dpk" ) != 0 ) ) {
 						continue;
 					}
 				}