From d81a374c894d7f9fb4035f04fae786e43715c4a8 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 2 May 2014 14:44:53 +0200 Subject: player: remove extremely obscure undefined behavior Apparently the value of a pointer is "indeterminate" after a free() call, even if you never dereference the pointer after the free. Since talloc_free() calls free(), this applies here. --- player/video.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'player') diff --git a/player/video.c b/player/video.c index 59acce0a19..1bb06ad0cc 100644 --- a/player/video.c +++ b/player/video.c @@ -326,9 +326,10 @@ static int decode_image(struct MPContext *mpctx) 1 : check_framedrop(mpctx, -1); d_video->waiting_decoded_mpi = video_decode(d_video, pkt, framedrop_type); + bool had_packet = !!pkt; talloc_free(pkt); - return !!pkt; + return had_packet; } -- cgit v1.2.3