diff --git a/libavutil/channel_layout.c b/libavutil/channel_layout.c index e2f7512254..9b581ae6b3 100644 --- a/libavutil/channel_layout.c +++ b/libavutil/channel_layout.c @@ -108,7 +108,9 @@ int av_channel_name(char *buf, size_t buf_size, enum AVChannel channel_id) av_bprint_init_for_buffer(&bp, buf, buf_size); av_channel_name_bprint(&bp, channel_id); - return bp.len; + if (bp.len >= INT_MAX) + return AVERROR(ERANGE); + return bp.len + 1; } void av_channel_description_bprint(AVBPrint *bp, enum AVChannel channel_id) @@ -135,7 +137,9 @@ int av_channel_description(char *buf, size_t buf_size, enum AVChannel channel_id av_bprint_init_for_buffer(&bp, buf, buf_size); av_channel_description_bprint(&bp, channel_id); - return bp.len; + if (bp.len >= INT_MAX) + return AVERROR(ERANGE); + return bp.len + 1; } enum AVChannel av_channel_from_string(const char *str) @@ -789,7 +793,9 @@ int av_channel_layout_describe(const AVChannelLayout *channel_layout, if (ret < 0) return ret; - return bp.len; + if (bp.len >= INT_MAX) + return AVERROR(ERANGE); + return bp.len + 1; } enum AVChannel diff --git a/libavutil/version.h b/libavutil/version.h index b36310ee4c..5a4d4d3d73 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -80,7 +80,7 @@ #define LIBAVUTIL_VERSION_MAJOR 58 #define LIBAVUTIL_VERSION_MINOR 16 -#define LIBAVUTIL_VERSION_MICRO 100 +#define LIBAVUTIL_VERSION_MICRO 101 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ LIBAVUTIL_VERSION_MINOR, \