| From 62676d50152a816bbc506fc1bd8b7e472e6503fa Mon Sep 17 00:00:00 2001 |
| From: Takashi Iwai <tiwai@suse.de> |
| Date: Fri, 14 Feb 2020 12:13:16 +0100 |
| Subject: [PATCH] ALSA: rawmidi: Avoid bit fields for state flags |
| |
| commit dfa9a5efe8b932a84b3b319250aa3ac60c20f876 upstream. |
| |
| The rawmidi state flags (opened, append, active_sensing) are stored in |
| bit fields that can be potentially racy when concurrently accessed |
| without any locks. Although the current code should be fine, there is |
| also no any real benefit by keeping the bitfields for this kind of |
| short number of members. |
| |
| This patch changes those bit fields flags to the simple bool fields. |
| There should be no size increase of the snd_rawmidi_substream by this |
| change. |
| |
| Reported-by: syzbot+576cc007eb9f2c968200@syzkaller.appspotmail.com |
| Link: https://lore.kernel.org/r/20200214111316.26939-4-tiwai@suse.de |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/include/sound/rawmidi.h b/include/sound/rawmidi.h |
| index 40ab20439fee..a36b7227a15a 100644 |
| --- a/include/sound/rawmidi.h |
| +++ b/include/sound/rawmidi.h |
| @@ -77,9 +77,9 @@ struct snd_rawmidi_substream { |
| struct list_head list; /* list of all substream for given stream */ |
| int stream; /* direction */ |
| int number; /* substream number */ |
| - unsigned int opened: 1, /* open flag */ |
| - append: 1, /* append flag (merge more streams) */ |
| - active_sensing: 1; /* send active sensing when close */ |
| + bool opened; /* open flag */ |
| + bool append; /* append flag (merge more streams) */ |
| + bool active_sensing; /* send active sensing when close */ |
| int use_count; /* use counter (for output) */ |
| size_t bytes; |
| struct snd_rawmidi *rmidi; |
| -- |
| 2.7.4 |
| |