diff options
author | Andrey Nazarov <skuller@skuller.net> | 2011-04-26 16:53:00 +0400 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2011-04-26 19:10:43 +0400 |
commit | 776fa0343672058a66f2ed994e67cfa610189a57 (patch) | |
tree | 9d6a6514d4c40b94c12d4ca928c354c4da9f7f71 /src/r_models.c | |
parent | 107eb88def58d969e3d4ad3948f3244573da9b0e (diff) |
Silently ignore empty configstrings.
With demo seeking in place image/model/sound registration functions may
be often called with empty names, silently ignore them.
Diffstat (limited to 'src/r_models.c')
-rw-r--r-- | src/r_models.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/r_models.c b/src/r_models.c index ee213ef..c15de5a 100644 --- a/src/r_models.c +++ b/src/r_models.c @@ -274,16 +274,27 @@ qhandle_t R_RegisterModel( const char *name ) { mod_load_t load; qerror_t ret; - if( name[0] == '*' ) { + // empty names are legal, silently ignore them + if( !*name ) + return 0; + + if( *name == '*' ) { // inline bsp model index = atoi( name + 1 ); return ~index; } // normalize the path - namelen = FS_NormalizePathBuffer( normalized, name, sizeof( normalized ) ); - if( namelen >= sizeof( normalized ) ) { + namelen = FS_NormalizePathBuffer( normalized, name, MAX_QPATH ); + + // this should never happen + if( namelen >= MAX_QPATH ) Com_Error( ERR_DROP, "%s: oversize name", __func__ ); + + // normalized to empty name? + if( namelen == 0 ) { + Com_DPrintf( "%s: empty name\n", __func__ ); + return 0; } // see if it's already loaded |