aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2014-09-18 14:49:36 +0000
committerDimitri Sokolyuk <demon@dim13.org>2014-09-18 14:49:36 +0000
commitb9b58a4fe38b1622dc6595114eb686fe89ce5c78 (patch)
tree5bd60383a88b92f81f3d4bb8fe57829678a39df2
parent610071752733cb5d7d40b7e5af8082de13c36c86 (diff)
return no more then samples count
-rw-r--r--sio.c10
1 files changed, 6 insertions, 4 deletions
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);