[alsa-devel] [PATCH] ALSA: seq: initialize whole fields of automatic variable with union type
Takashi Iwai
tiwai at suse.de
Tue Aug 30 07:11:52 CEST 2016
On Tue, 30 Aug 2016 02:11:54 +0200,
Takashi Sakamoto wrote:
>
> Currently, automatic variable of 'union ioctl_arg' type is initialized
> by designated initialization. Although, the actual effect is interpretation
> of early element of int type and initialization of 'int pversion'.
> Therefore the first field corresponding to int type is initialized to zero.
> This is against my expectation to initialize whole fields.
>
> This commit uses memset() to initialize the variable, instead of designated
> initialization.
>
> Fixes: 04a56dd8ed0d ('ALSA: seq: change ioctl command operation to get data in kernel space')
> Signed-off-by: Takashi Sakamoto <o-takashi at sakamocchi.jp>
> ---
> sound/core/seq/seq_clientmgr.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c
> index 286394b..fd50c38 100644
> --- a/sound/core/seq/seq_clientmgr.c
> +++ b/sound/core/seq/seq_clientmgr.c
> @@ -2100,7 +2100,7 @@ static long snd_seq_ioctl(struct file *file, unsigned int cmd,
> struct snd_seq_client_pool client_pool;
> struct snd_seq_remove_events remove_events;
> struct snd_seq_query_subs query_subs;
> - } buf = {0};
> + } buf;
> const struct ioctl_handler *handler;
> unsigned long size;
> int err;
> @@ -2114,6 +2114,9 @@ static long snd_seq_ioctl(struct file *file, unsigned int cmd,
> }
> if (handler->cmd == 0)
> return -ENOTTY;
> +
> + memset(&buf, 0, sizeof(union ioctl_arg));
The common practice is to pass sizeof(buf).
Takashi
More information about the Alsa-devel
mailing list