Skip to content

Commit

Permalink
- Check for invalid filename in OpenAL's RegisterSound function.
Browse files Browse the repository at this point in the history
- Changed Base sound system to warn not error when sound filename is empty or too long.

git-svn-id: svn://svn.icculus.org/quake3/trunk@2361 edf5b092-35ff-0310-97b2-ce42778d08ea
  • Loading branch information
ztm committed Nov 19, 2012
1 parent b0a00a5 commit 0719215
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 6 deletions.
14 changes: 8 additions & 6 deletions code/client/snd_dma.c
Expand Up @@ -258,14 +258,17 @@ static sfx_t *S_FindName( const char *name ) {
sfx_t *sfx;

if (!name) {
Com_Error (ERR_FATAL, "S_FindName: NULL");
Com_Error(ERR_FATAL, "Sound name is NULL");
}

if (!name[0]) {
Com_Error (ERR_FATAL, "S_FindName: empty name");
Com_Printf( S_COLOR_YELLOW "WARNING: Sound name is empty\n" );
return NULL;
}

if (strlen(name) >= MAX_QPATH) {
Com_Error (ERR_FATAL, "Sound name too long: %s", name);
Com_Printf( S_COLOR_YELLOW "WARNING: Sound name is too long: %s\n", name );
return NULL;
}

hash = S_HashSFXName(name);
Expand Down Expand Up @@ -351,12 +354,11 @@ sfxHandle_t S_Base_RegisterSound( const char *name, qboolean compressed ) {
return 0;
}

if ( strlen( name ) >= MAX_QPATH ) {
Com_Printf( "Sound name exceeds MAX_QPATH\n" );
sfx = S_FindName( name );
if ( !sfx ) {
return 0;
}

sfx = S_FindName( name );
if ( sfx->soundData ) {
if ( sfx->defaultSound ) {
Com_Printf( S_COLOR_YELLOW "WARNING: could not find %s - using default\n", sfx->soundName );
Expand Down
14 changes: 14 additions & 0 deletions code/client/snd_openal.c
Expand Up @@ -194,6 +194,20 @@ static sfxHandle_t S_AL_BufferFind(const char *filename)
sfxHandle_t sfx = -1;
int i;

if ( !filename ) {
Com_Error( ERR_FATAL, "Sound name is NULL" );
}

if ( !filename[0] ) {
Com_Printf( S_COLOR_YELLOW "WARNING: Sound name is empty\n" );
return 0;
}

if ( strlen( filename ) >= MAX_QPATH ) {
Com_Printf( S_COLOR_YELLOW "WARNING: Sound name is too long: %s\n", filename );
return 0;
}

for(i = 0; i < numSfx; i++)
{
if(!Q_stricmp(knownSfx[i].filename, filename))
Expand Down

0 comments on commit 0719215

Please sign in to comment.