]> git.draconx.ca Git - liblbx.git/blobdiff - src/lbx.c
liblbx: Correct EOF handling in lbx_file_read.
[liblbx.git] / src / lbx.c
index 1198ebbc2c0b13e08aa4cbb7c914ae431d4eb48c..f96344d2ce7cfc717796531f244d789414973021 100644 (file)
--- a/src/lbx.c
+++ b/src/lbx.c
@@ -262,8 +262,13 @@ size_t lbx_file_read(struct lbx_file_state *f, void *buf, size_t n)
        rc = fops->read(buf, want, f->lbx->f);
        f->offset += rc;
 
-       if (want < n || (rc < want && fops->eof(f->lbx->f)))
+       if (rc < want) {
+               if (fops->eof(f->lbx->f))
+                       lbx_error_raise(LBX_EEOF);
+       } else if (rc < n) {
                f->eof = 1;
+       }
+
        return rc;
 }