提交 a628b869 编写于 作者: M malc

oss/alsa: Do not invoke UB described in 7.15.1.1 (this time for ADC)

Signed-off-by: Nmalc <av1474@comtv.ru>
上级 cbc18261
...@@ -1079,23 +1079,26 @@ static int alsa_read (SWVoiceIn *sw, void *buf, int size) ...@@ -1079,23 +1079,26 @@ static int alsa_read (SWVoiceIn *sw, void *buf, int size)
static int alsa_ctl_in (HWVoiceIn *hw, int cmd, ...) static int alsa_ctl_in (HWVoiceIn *hw, int cmd, ...)
{ {
va_list ap;
int poll_mode;
ALSAVoiceIn *alsa = (ALSAVoiceIn *) hw; ALSAVoiceIn *alsa = (ALSAVoiceIn *) hw;
va_start (ap, cmd);
poll_mode = va_arg (ap, int);
va_end (ap);
switch (cmd) { switch (cmd) {
case VOICE_ENABLE: case VOICE_ENABLE:
ldebug ("enabling voice\n"); {
if (poll_mode && alsa_poll_in (hw)) { va_list ap;
poll_mode = 0; int poll_mode;
}
hw->poll_mode = poll_mode;
return alsa_voice_ctl (alsa->handle, "capture", 0); va_start (ap, cmd);
poll_mode = va_arg (ap, int);
va_end (ap);
ldebug ("enabling voice\n");
if (poll_mode && alsa_poll_in (hw)) {
poll_mode = 0;
}
hw->poll_mode = poll_mode;
return alsa_voice_ctl (alsa->handle, "capture", 0);
}
case VOICE_DISABLE: case VOICE_DISABLE:
ldebug ("disabling voice\n"); ldebug ("disabling voice\n");
......
...@@ -781,20 +781,23 @@ static int oss_read (SWVoiceIn *sw, void *buf, int size) ...@@ -781,20 +781,23 @@ static int oss_read (SWVoiceIn *sw, void *buf, int size)
static int oss_ctl_in (HWVoiceIn *hw, int cmd, ...) static int oss_ctl_in (HWVoiceIn *hw, int cmd, ...)
{ {
va_list ap;
int poll_mode;
OSSVoiceIn *oss = (OSSVoiceIn *) hw; OSSVoiceIn *oss = (OSSVoiceIn *) hw;
va_start (ap, cmd);
poll_mode = va_arg (ap, int);
va_end (ap);
switch (cmd) { switch (cmd) {
case VOICE_ENABLE: case VOICE_ENABLE:
if (poll_mode && oss_poll_in (hw)) { {
poll_mode = 0; va_list ap;
int poll_mode;
va_start (ap, cmd);
poll_mode = va_arg (ap, int);
va_end (ap);
if (poll_mode && oss_poll_in (hw)) {
poll_mode = 0;
}
hw->poll_mode = poll_mode;
} }
hw->poll_mode = poll_mode;
break; break;
case VOICE_DISABLE: case VOICE_DISABLE:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册