From a924e1306eaef8444cd5f3b1ed010bca4bcb3f98 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Wed, 12 May 2010 23:22:37 +0200 Subject: [PATCH] oss: Fix double free bug on open failure. If setting the oss parameters (sample format, sample rate, channel count) fails, we end up freeing the private_oss_data struct twice. --- oss_write.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/oss_write.c b/oss_write.c index 3ef0d9e8..48545630 100644 --- a/oss_write.c +++ b/oss_write.c @@ -82,7 +82,8 @@ static void oss_close(struct writer_node *wn) { struct private_oss_write_data *powd = wn->private_data; - close(powd->fd); + if (powd->fd >= 0) + close(powd->fd); free(powd); } @@ -175,7 +176,7 @@ static int oss_open(struct writer_node *wn) return 1; err: close(powd->fd); - free(powd); + powd->fd = -1; return ret; } -- 2.39.2