summaryrefslogtreecommitdiff
path: root/src/heretic/i_sound.c
diff options
context:
space:
mode:
authorSimon Howard2014-04-01 20:43:45 -0400
committerSimon Howard2014-04-01 20:43:45 -0400
commit8eb3200286d523379295143ce3f44d77ce036d4b (patch)
treeac0edb56027f285425d896e12a1b14d78ad294b9 /src/heretic/i_sound.c
parent565a1f08566520147a5abff5744dbcc256e5030c (diff)
downloadchocolate-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.c34
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);
}