diff options
Diffstat (limited to 'sound/core')
| -rw-r--r-- | sound/core/control.c | 4 | ||||
| -rw-r--r-- | sound/core/info.c | 5 |
2 files changed, 4 insertions, 5 deletions
diff --git a/sound/core/control.c b/sound/core/control.c index 6973a9686b67..48ef0a09a7a7 100644 --- a/sound/core/control.c +++ b/sound/core/control.c | |||
| @@ -1018,10 +1018,6 @@ static int snd_ctl_elem_add(struct snd_ctl_file *file, | |||
| 1018 | } | 1018 | } |
| 1019 | switch (info->type) { | 1019 | switch (info->type) { |
| 1020 | case SNDRV_CTL_ELEM_TYPE_BOOLEAN: | 1020 | case SNDRV_CTL_ELEM_TYPE_BOOLEAN: |
| 1021 | private_size = sizeof(char); | ||
| 1022 | if (info->count > 128) | ||
| 1023 | return -EINVAL; | ||
| 1024 | break; | ||
| 1025 | case SNDRV_CTL_ELEM_TYPE_INTEGER: | 1021 | case SNDRV_CTL_ELEM_TYPE_INTEGER: |
| 1026 | private_size = sizeof(long); | 1022 | private_size = sizeof(long); |
| 1027 | if (info->count > 128) | 1023 | if (info->count > 128) |
diff --git a/sound/core/info.c b/sound/core/info.c index e43662b33f16..0b4aab3225e5 100644 --- a/sound/core/info.c +++ b/sound/core/info.c | |||
| @@ -120,7 +120,10 @@ int snd_iprintf(struct snd_info_buffer *buffer, char *fmt,...) | |||
| 120 | len = buffer->len - buffer->size; | 120 | len = buffer->len - buffer->size; |
| 121 | va_start(args, fmt); | 121 | va_start(args, fmt); |
| 122 | for (;;) { | 122 | for (;;) { |
| 123 | res = vsnprintf(buffer->buffer + buffer->curr, len, fmt, args); | 123 | va_list ap; |
| 124 | va_copy(ap, args); | ||
| 125 | res = vsnprintf(buffer->buffer + buffer->curr, len, fmt, ap); | ||
| 126 | va_end(ap); | ||
| 124 | if (res < len) | 127 | if (res < len) |
| 125 | break; | 128 | break; |
| 126 | err = resize_info_buffer(buffer, buffer->len + PAGE_SIZE); | 129 | err = resize_info_buffer(buffer, buffer->len + PAGE_SIZE); |
