summaryrefslogtreecommitdiff
path: root/libavutil/channel_layout.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavutil/channel_layout.c')
-rw-r--r--libavutil/channel_layout.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libavutil/channel_layout.c b/libavutil/channel_layout.c
index a59ba4610f..601c7e677c 100644
--- a/libavutil/channel_layout.c
+++ b/libavutil/channel_layout.c
@@ -122,13 +122,16 @@ static uint64_t get_channel_layout_single(const char *name, int name_len)
strlen(channel_names[i].name) == name_len &&
!memcmp(channel_names[i].name, name, name_len))
return (int64_t)1 << i;
+
+ errno = 0;
i = strtol(name, &end, 10);
- if ((end + 1 - name == name_len && *end == 'c'))
+ if (!errno && (end + 1 - name == name_len && *end == 'c'))
return av_get_default_channel_layout(i);
+ errno = 0;
layout = strtoll(name, &end, 0);
- if (end - name == name_len)
+ if (!errno && end - name == name_len)
return FFMAX(layout, 0);
return 0;
}