diff --git a/doc/examples/decoding_encoding.c b/doc/examples/decoding_encoding.c index ae1057c010..976b611cc1 100644 --- a/doc/examples/decoding_encoding.c +++ b/doc/examples/decoding_encoding.c @@ -79,7 +79,7 @@ static int select_channel_layout(AVCodec *codec) { const uint64_t *p; uint64_t best_ch_layout = 0; - int best_nb_channells = 0; + int best_nb_channels = 0; if (!codec->channel_layouts) return AV_CH_LAYOUT_STEREO; @@ -88,9 +88,9 @@ static int select_channel_layout(AVCodec *codec) while (*p) { int nb_channels = av_get_channel_layout_nb_channels(*p); - if (nb_channels > best_nb_channells) { + if (nb_channels > best_nb_channels) { best_ch_layout = *p; - best_nb_channells = nb_channels; + best_nb_channels = nb_channels; } p++; } diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 17139acb3f..688a61556c 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -2327,7 +2327,8 @@ static int matroska_parse_block(MatroskaDemuxContext *matroska, uint8_t *data, st->codec->codec_id == AV_CODEC_ID_ATRAC3) && st->codec->block_align && track->audio.sub_packet_size) { - res = matroska_parse_rm_audio(matroska, track, st, data, size, + res = matroska_parse_rm_audio(matroska, track, st, data, + lace_size[n], timecode, pos); if (res) goto end; diff --git a/libavutil/opt.c b/libavutil/opt.c index ab73913a39..0e7a3a85bb 100644 --- a/libavutil/opt.c +++ b/libavutil/opt.c @@ -1032,9 +1032,16 @@ static int parse_key_value_pair(void *ctx, const char **buf, char *val; int ret; + if (!key) + return AVERROR(ENOMEM); + if (*key && strspn(*buf, key_val_sep)) { (*buf)++; val = av_get_token(buf, pairs_sep); + if (!val) { + av_freep(&key); + return AVERROR(ENOMEM); + } } else { av_log(ctx, AV_LOG_ERROR, "Missing key or no key/value separator found after key '%s'\n", key); av_free(key);