summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2018-03-24 22:33:32 -0300
committerJames Almer <jamrial@gmail.com>2018-04-02 00:37:51 -0300
commit02ae52db87270715bb81ddb912a2e3968e973d1f (patch)
tree408d4abd4c56d8d4ebcadd540b014a3e3967426b /libavformat
parent265ec55983bf3b981190b564925a609d53391aa5 (diff)
avformat/utils: use av_packet_make_refcounted to ensure packets are ref counted
Simplifies code, while also fixing a potential leak of side data in pkt. Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/utils.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c
index f13c8208b1..39a36a5ac4 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -867,13 +867,9 @@ int ff_read_packet(AVFormatContext *s, AVPacket *pkt)
continue;
}
- if (!pkt->buf) {
- AVPacket tmp = { 0 };
- err = av_packet_ref(&tmp, pkt);
- if (err < 0)
- return err;
- *pkt = tmp;
- }
+ err = av_packet_make_refcounted(pkt);
+ if (err < 0)
+ return err;
if ((s->flags & AVFMT_FLAG_DISCARD_CORRUPT) &&
(pkt->flags & AV_PKT_FLAG_CORRUPT)) {