diff options
author | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2012-04-30 22:58:27 +0200 |
---|---|---|
committer | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2012-05-01 23:20:52 +0200 |
commit | 7effbee66cf457c62f795d9b9ed3a1110b364b89 (patch) | |
tree | a406f659aff1b694e66774acb77ec856024d81d8 /libavformat/utils.c | |
parent | 75f847aa6b1bc88733e59d680809f614977b4c07 (diff) |
Mark truncated packets as corrupt in av_get_packet.
Manually remove that flag again for formats that read an arbitrary
amount of data and thus truncation is not an error.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Diffstat (limited to 'libavformat/utils.c')
-rw-r--r-- | libavformat/utils.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c index d6e7f69ec5..d9dc2fb731 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -297,6 +297,7 @@ int ffio_limit(AVIOContext *s, int size) int av_get_packet(AVIOContext *s, AVPacket *pkt, int size) { int ret; + int orig_size = size; size= ffio_limit(s, size); ret= av_new_packet(pkt, size); @@ -311,6 +312,8 @@ int av_get_packet(AVIOContext *s, AVPacket *pkt, int size) av_free_packet(pkt); else av_shrink_packet(pkt, ret); + if (pkt->size < orig_size) + pkt->flags |= AV_PKT_FLAG_CORRUPT; return ret; } |