diff options
author | Simon Howard | 2014-04-01 20:43:45 -0400 |
---|---|---|
committer | Simon Howard | 2014-04-01 20:43:45 -0400 |
commit | 8eb3200286d523379295143ce3f44d77ce036d4b (patch) | |
tree | ac0edb56027f285425d896e12a1b14d78ad294b9 /src/heretic/i_sound.c | |
parent | 565a1f08566520147a5abff5744dbcc256e5030c (diff) | |
download | chocolate-doom-8eb3200286d523379295143ce3f44d77ce036d4b.tar.gz chocolate-doom-8eb3200286d523379295143ce3f44d77ce036d4b.tar.bz2 chocolate-doom-8eb3200286d523379295143ce3f44d77ce036d4b.zip |
Replace all snprintf() calls with M_snprintf().
The Windows API has an _snprintf function that is not the same as
Unix's snprintf(): if the string is truncated then no trailing NUL
character is appended. This makes the function unsafe. Define a
replacement/wrapper called M_snprintf that works the same but always
appends a trailing NUL, for safety on Windows and other OSes that
behave like this.
Do the same thing for vsnprintf(), and update HACKING to list
snprintf/vsnprintf as forbidden functions. This fixes #375;
thanks to Quasar for pointing out the different behavior of these
functions.
Diffstat (limited to 'src/heretic/i_sound.c')
-rw-r--r-- | src/heretic/i_sound.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/src/heretic/i_sound.c b/src/heretic/i_sound.c index 2dc66239..f415ce0a 100644 --- a/src/heretic/i_sound.c +++ b/src/heretic/i_sound.c @@ -211,8 +211,8 @@ int I_GetSfxLumpNum(sfxinfo_t * sound) return 0; if (sound->link) sound = sound->link; -// snprintf(namebuf, sizeof(namebuf), "d%c%s", -// snd_prefixen[snd_SfxDevice], sound->name); +// M_snprintf(namebuf, sizeof(namebuf), "d%c%s", +// snd_prefixen[snd_SfxDevice], sound->name); return W_GetNumForName(sound->name); } @@ -320,15 +320,15 @@ void I_sndArbitrateCards(void) { if (debugmode) { - snprintf(tmp, sizeof(tmp), "cfg p=0x%x, i=%d, d=%d\n", - snd_SBport, snd_SBirq, snd_SBdma); + M_snprintf(tmp, sizeof(tmp), "cfg p=0x%x, i=%d, d=%d\n", + snd_SBport, snd_SBirq, snd_SBdma); tprintf(tmp, 0); } if (SB_Detect(&snd_SBport, &snd_SBirq, &snd_SBdma, 0)) { - snprintf(tmp, sizeof(tmp), - "SB isn't responding at p=0x%x, i=%d, d=%d\n", - snd_SBport, snd_SBirq, snd_SBdma); + M_snprintf(tmp, sizeof(tmp), + "SB isn't responding at p=0x%x, i=%d, d=%d\n", + snd_SBport, snd_SBirq, snd_SBdma); tprintf(tmp, 0); } else @@ -336,8 +336,8 @@ void I_sndArbitrateCards(void) if (debugmode) { - snprintf(tmp, sizeof(tmp), "SB_Detect returned p=0x%x,i=%d,d=%d\n", - snd_SBport, snd_SBirq, snd_SBdma); + M_snprintf(tmp, sizeof(tmp), "SB_Detect returned p=0x%x,i=%d,d=%d\n", + snd_SBport, snd_SBirq, snd_SBdma); tprintf(tmp, 0); } } @@ -354,14 +354,14 @@ void I_sndArbitrateCards(void) { if (debugmode) { - snprintf(tmp, sizeof(tmp), "cfg p=0x%x\n", snd_Mport); + M_snprintf(tmp, sizeof(tmp), "cfg p=0x%x\n", snd_Mport); tprintf(tmp, 0); } if (MPU_Detect(&snd_Mport, &i)) { - snprintf(tmp, sizeof(tmp), - "The MPU-401 isn't reponding @ p=0x%x.\n", snd_Mport); + M_snprintf(tmp, sizeof(tmp), + "The MPU-401 isn't reponding @ p=0x%x.\n", snd_Mport); tprintf(tmp, 0); } else @@ -399,11 +399,11 @@ void I_StartupSound(void) if (debugmode) { - snprintf(tmp, sizeof(tmp), " Music device #%d & dmxCode=%d", - snd_MusicDevice, dmxCodes[snd_MusicDevice]); + M_snprintf(tmp, sizeof(tmp), " Music device #%d & dmxCode=%d", + snd_MusicDevice, dmxCodes[snd_MusicDevice]); tprintf(tmp, 0); - snprintf(tmp, sizeof(tmp), " Sfx device #%d & dmxCode=%d\n", - snd_SfxDevice, dmxCodes[snd_SfxDevice]); + M_snprintf(tmp, sizeof(tmp), " Sfx device #%d & dmxCode=%d\n", + snd_SfxDevice, dmxCodes[snd_SfxDevice]); tprintf(tmp, 0); } @@ -414,7 +414,7 @@ void I_StartupSound(void) if (debugmode) { - snprintf(tmp, sizeof(tmp), " DMX_Init() returned %d", rc); + M_snprintf(tmp, sizeof(tmp), " DMX_Init() returned %d", rc); tprintf(tmp, 0); } |