Unified · Split
| @@ -66,10 +66,10 @@ static int add_metadata(AVFormatContext *s, uint32_t tag, · 65 unmodified lines | ||
| 66 | 66 | return AVERROR(ENOMEM); |
| 67 | 67 | |
| 68 | 68 | ret = avio_read(s->pb, buf, len); |
| 69 | − if (ret < 0) | |
| 70 | − return ret; | |
| 71 | − if (len != ret) | |
| 72 | − return AVERROR_INVALIDDATA; | |
| 69 | + if (ret < 0 || ret != len) { | |
| 70 | + av_free(buf); | |
| 71 | + return ret < 0 ? ret : AVERROR_INVALIDDATA; | |
| 72 | + } | |
| 73 | 73 | buf[len] = 0; |
| 74 | 74 | AV_WL32(key, tag); |
| 75 | 75 | return av_dict_set(&s->metadata, key, buf, AV_DICT_DONT_STRDUP_VAL); |