From b9b58a4fe38b1622dc6595114eb686fe89ce5c78 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Thu, 18 Sep 2014 14:49:36 +0000 Subject: return no more then samples count --- sio.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'sio.c') diff --git a/sio.c b/sio.c index 7104e9a..414de7c 100644 --- a/sio.c +++ b/sio.c @@ -79,12 +79,14 @@ read_sio(double *left, double *right, size_t n) { int done, i; char *p = (char *)buffer; - size_t bufsz = samples * par.rchan * sizeof(int16_t); - size_t rndsz = n * par.rchan * sizeof(int16_t); + size_t bufsz, rndsz; struct data *data; - if (rndsz > bufsz) - rndsz = bufsz; + if (n > samples) + n = samples; + + bufsz = samples * par.rchan * sizeof(int16_t); + rndsz = n * par.rchan * sizeof(int16_t); for (done = 0; bufsz > 0; p += done, bufsz -= done) { done = sio_read(hdl, p, bufsz); -- cgit v1.2.3