* [patch 1/2] ALSA: hdspm - potential info leak in
@ 2011-09-23 6:24 Dan Carpenter
2011-09-23 6:31 ` [patch 1/2] ALSA: hdspm - potential info leak in snd_hdspm_hwdep_ioctl() Takashi Iwai
0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2011-09-23 6:24 UTC (permalink / raw)
To: kernel-janitors
Smatch has a new check for Rosenberg type information leaks where
structs are copied to the user with uninitialized stack data in them.
The status struct has a hole in it, and on some paths not all the
members were initialized.
struct hdspm_status {
unsigned char card_type; /* 0 1 */
/* XXX 3 bytes hole, try to pack */
enum hdspm_syncsource autosync_source; /* 4 4 */
long long unsigned int card_clock; /* 8 8 */
The hdspm_version struct had holes in it as well.
struct hdspm_version {
unsigned char card_type; /* 0 1 */
char cardname[20]; /* 1 20 */
/* XXX 3 bytes hole, try to pack */
unsigned int serial; /* 24 4 */
short unsigned int firmware_rev; /* 28 2 */
/* XXX 2 bytes hole, try to pack */
int addons; /* 32 4 */
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c
index 214110d..bf438d1 100644
--- a/sound/pci/rme9652/hdspm.c
+++ b/sound/pci/rme9652/hdspm.c
@@ -6227,6 +6227,8 @@ static int snd_hdspm_hwdep_ioctl(struct snd_hwdep *hw, struct file *file,
break;
case SNDRV_HDSPM_IOCTL_GET_STATUS:
+ memset(&status, 0, sizeof(status));
+
status.card_type = hdspm->io_type;
status.autosync_source = hdspm_autosync_ref(hdspm);
@@ -6266,6 +6268,8 @@ static int snd_hdspm_hwdep_ioctl(struct snd_hwdep *hw, struct file *file,
break;
case SNDRV_HDSPM_IOCTL_GET_VERSION:
+ memset(&hdspm_version, 0, sizeof(hdspm_version));
+
hdspm_version.card_type = hdspm->io_type;
strncpy(hdspm_version.cardname, hdspm->card_name,
sizeof(hdspm_version.cardname));
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [patch 1/2] ALSA: hdspm - potential info leak in snd_hdspm_hwdep_ioctl()
2011-09-23 6:24 [patch 1/2] ALSA: hdspm - potential info leak in Dan Carpenter
@ 2011-09-23 6:31 ` Takashi Iwai
0 siblings, 0 replies; 2+ messages in thread
From: Takashi Iwai @ 2011-09-23 6:31 UTC (permalink / raw)
To: Dan Carpenter
Cc: alsa-devel, kernel-janitors, Adrian Knoth, Florian Faber,
Fredrik Lingvall
At Fri, 23 Sep 2011 09:24:21 +0300,
Dan Carpenter wrote:
>
> Smatch has a new check for Rosenberg type information leaks where
> structs are copied to the user with uninitialized stack data in them.
>
> The status struct has a hole in it, and on some paths not all the
> members were initialized.
>
> struct hdspm_status {
> unsigned char card_type; /* 0 1 */
> /* XXX 3 bytes hole, try to pack */
> enum hdspm_syncsource autosync_source; /* 4 4 */
> long long unsigned int card_clock; /* 8 8 */
>
> The hdspm_version struct had holes in it as well.
>
> struct hdspm_version {
> unsigned char card_type; /* 0 1 */
> char cardname[20]; /* 1 20 */
> /* XXX 3 bytes hole, try to pack */
> unsigned int serial; /* 24 4 */
> short unsigned int firmware_rev; /* 28 2 */
> /* XXX 2 bytes hole, try to pack */
> int addons; /* 32 4 */
>
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Applied now. Thanks.
Takashi
> diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c
> index 214110d..bf438d1 100644
> --- a/sound/pci/rme9652/hdspm.c
> +++ b/sound/pci/rme9652/hdspm.c
> @@ -6227,6 +6227,8 @@ static int snd_hdspm_hwdep_ioctl(struct snd_hwdep *hw, struct file *file,
> break;
>
> case SNDRV_HDSPM_IOCTL_GET_STATUS:
> + memset(&status, 0, sizeof(status));
> +
> status.card_type = hdspm->io_type;
>
> status.autosync_source = hdspm_autosync_ref(hdspm);
> @@ -6266,6 +6268,8 @@ static int snd_hdspm_hwdep_ioctl(struct snd_hwdep *hw, struct file *file,
> break;
>
> case SNDRV_HDSPM_IOCTL_GET_VERSION:
> + memset(&hdspm_version, 0, sizeof(hdspm_version));
> +
> hdspm_version.card_type = hdspm->io_type;
> strncpy(hdspm_version.cardname, hdspm->card_name,
> sizeof(hdspm_version.cardname));
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-09-23 6:31 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-23 6:24 [patch 1/2] ALSA: hdspm - potential info leak in Dan Carpenter
2011-09-23 6:31 ` [patch 1/2] ALSA: hdspm - potential info leak in snd_hdspm_hwdep_ioctl() Takashi Iwai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox