From 5ad9b425c3c1273d7fda175f785a1e05f98aa3c9 Mon Sep 17 00:00:00 2001 From: Julian Scheel Date: Sat, 6 Feb 2010 14:38:32 +0100 Subject: Fix segfault on dispose In case of an empty nal_buffer the free method would run into a NULL pointer. Check for this. --- src/video_dec/libvdpau/nal.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/video_dec/libvdpau/nal.c b/src/video_dec/libvdpau/nal.c index 87a2b5450..cacc21ddf 100644 --- a/src/video_dec/libvdpau/nal.c +++ b/src/video_dec/libvdpau/nal.c @@ -42,11 +42,13 @@ void free_nal_buffer(struct nal_buffer *nal_buffer) { struct nal_unit *nal = nal_buffer->first; - do { - struct nal_unit *delete = nal; - nal = nal->next; - release_nal_unit(delete); - } while(nal != NULL); + if(nal != NULL) { + do { + struct nal_unit *delete = nal; + nal = nal->next; + release_nal_unit(delete); + } while(nal != NULL); + } free(nal_buffer); } -- cgit v1.2.3