/*
- * Copyright (C) 2009 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2009-2010 Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
{
struct private_oss_write_data *powd = wn->private_data;
- close(powd->fd);
+ if (powd->fd >= 0)
+ close(powd->fd);
free(powd);
}
return 1;
err:
close(powd->fd);
- free(powd);
+ powd->fd = -1;
return ret;
}
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);