off_t off = 0;
ssize_t rsz;
- if (data->is_eof || n > eq->blocksmax)
+ if (data->is_eof)
return 0;
+ if (n >= eq->blocksmax)
+ return -EINVAL;
+
fd = get_fd(eq, data, &off);
if (fd < 0)
return fd;
size_t sz;
int fd;
- if (n > eq->blocksmax)
- return 0;
-
/* return already cached if available */
if (n < get_cached_nblocks(data)) {
DBG(DATA, ul_debugobj(data, " digest cached"));
return 0;
}
+ if (n >= eq->blocksmax)
+ return -EINVAL;
+
/* read new block */
fd = get_fd(eq, data, &off);
if (fd < 0)
return -ENOMEM;
}
- assert(n <= eq->blocksmax);
-
rsz = sendfile(eq->fd_cip, data->fd, NULL, eq->readsiz);
DBG(DATA, ul_debugobj(data, " sent %zu [%zu wanted] to cipher", rsz, eq->readsiz));