summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJulian Scheel <julian@jusst.de>2010-02-06 14:38:32 +0100
committerJulian Scheel <julian@jusst.de>2010-02-06 14:38:32 +0100
commit5ad9b425c3c1273d7fda175f785a1e05f98aa3c9 (patch)
tree4c18bd79584e19b8881e6c243c63f70779f58af9 /src
parent66f60ab3969928227bd0fa57df451e7bc58f2ff7 (diff)
downloadxine-lib-5ad9b425c3c1273d7fda175f785a1e05f98aa3c9.tar.gz
xine-lib-5ad9b425c3c1273d7fda175f785a1e05f98aa3c9.tar.bz2
Fix segfault on dispose
In case of an empty nal_buffer the free method would run into a NULL pointer. Check for this.
Diffstat (limited to 'src')
-rw-r--r--src/video_dec/libvdpau/nal.c12
1 files changed, 7 insertions, 5 deletions
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);
}