X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=oss_write.c;h=da2539d157ff9f995ae36090d4d434a9b8aa82bc;hp=10a64497d58b9c024aa9d1097bd7976da3b79883;hb=0c395e45939ec272214ea14f3c07fc925a5697f5;hpb=b0fe6d882dd35b01360a66e130d6714aff7b6a0d diff --git a/oss_write.c b/oss_write.c index 10a64497..da2539d1 100644 --- a/oss_write.c +++ b/oss_write.c @@ -53,7 +53,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); } @@ -137,7 +138,7 @@ static int oss_init(struct writer_node *wn, unsigned samplerate, unsigned channe return 1; err: close(powd->fd); - free(powd); + powd->fd = -1; return ret; } @@ -182,7 +183,7 @@ static void oss_post_select(__a_unused struct sched *s, ret = 0; if (!FD_ISSET(powd->fd, &s->wfds)) goto out; - ret = write_nonblock(powd->fd, data, frames * powd->bytes_per_frame, 0); + ret = write_nonblock(powd->fd, data, frames * powd->bytes_per_frame); if (ret < 0) goto out; btr_consume(btrn, ret);