[alsa-devel] [PATCH] mpu401.c: Buffer overflow
![](https://secure.gravatar.com/avatar/8c4b71fdac7ab6b88dd256639ae41b3d.jpg?s=120&d=mm&r=g)
mpu_synth_info[m].name is a char[30], and the minimum length of the data written by sprintf is 31 bytes including terminating null.
Signed-off-by: Roel Kluin roel.kluin@gmail.com --- Found with Parfait, http://research.sun.com/projects/parfait/
diff --git a/sound/oss/mpu401.c b/sound/oss/mpu401.c index 1b2316f..734b8f9 100644 --- a/sound/oss/mpu401.c +++ b/sound/oss/mpu401.c @@ -1074,7 +1074,7 @@ int attach_mpu401(struct address_info *hw_config, struct module *owner) sprintf(mpu_synth_info[m].name, "%s (MPU401)", hw_config->name); else sprintf(mpu_synth_info[m].name, - "MPU-401 %d.%d%c Midi interface #%d", + "MPU-401 %d.%d%c MIDI #%d", (int) (devc->version & 0xf0) >> 4, devc->version & 0x0f, revision_char,
![](https://secure.gravatar.com/avatar/5b19e9d0e834ea10ef75803718ad564b.jpg?s=120&d=mm&r=g)
At Wed, 29 Jul 2009 12:12:09 +0200, Roel Kluin wrote:
mpu_synth_info[m].name is a char[30], and the minimum length of the data written by sprintf is 31 bytes including terminating null.
Signed-off-by: Roel Kluin roel.kluin@gmail.com
Applied now. Thanks.
Takashi
Found with Parfait, http://research.sun.com/projects/parfait/
diff --git a/sound/oss/mpu401.c b/sound/oss/mpu401.c index 1b2316f..734b8f9 100644 --- a/sound/oss/mpu401.c +++ b/sound/oss/mpu401.c @@ -1074,7 +1074,7 @@ int attach_mpu401(struct address_info *hw_config, struct module *owner) sprintf(mpu_synth_info[m].name, "%s (MPU401)", hw_config->name); else sprintf(mpu_synth_info[m].name,
"MPU-401 %d.%d%c Midi interface #%d",
"MPU-401 %d.%d%c MIDI #%d", (int) (devc->version & 0xf0) >> 4, devc->version & 0x0f, revision_char,
participants (2)
-
Roel Kluin
-
Takashi Iwai