summaryrefslogtreecommitdiff
path: root/libavformat/utils.c
diff options
context:
space:
mode:
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>2012-04-30 22:58:27 +0200
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>2012-05-01 23:20:52 +0200
commit7effbee66cf457c62f795d9b9ed3a1110b364b89 (patch)
treea406f659aff1b694e66774acb77ec856024d81d8 /libavformat/utils.c
parent75f847aa6b1bc88733e59d680809f614977b4c07 (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.c3
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;
}