]> iEval git - fdkaac.git/blobdiff - src/main.c
check error of fread() and fwrite()
[fdkaac.git] / src / main.c
index d32a2e5e85fc56d2b7b2216e64e0859e24740d5e..f0521e453923fc0b7bd99446c5934d415d6248f1 100644 (file)
 static
 int read_callback(void *cookie, void *data, uint32_t size)
 {
-    return fread(data, 1, size, (FILE*)cookie);
+    size_t rc = fread(data, 1, size, (FILE*)cookie);
+    return ferror((FILE*)cookie) ? -1 : (int)rc;
 }
 
 static
 int write_callback(void *cookie, const void *data, uint32_t size)
 {
-    return fwrite(data, 1, size, (FILE*)cookie);
+    size_t rc = fwrite(data, 1, size, (FILE*)cookie);
+    return ferror((FILE*)cookie) ? -1 : (int)rc;
 }
 
 static
@@ -297,7 +299,8 @@ int write_sample(FILE *ofp, m4af_writer_t *m4af,
                  const void *data, uint32_t size, uint32_t duration)
 {
     if (!m4af) {
-        if (fwrite(data, 1, size, ofp) < 0) {
+        fwrite(data, 1, size, ofp);
+        if (ferror(ofp)) {
             fprintf(stderr, "ERROR: fwrite(): %s\n", strerror(errno));
             return -1;
         }
This page took 0.017408 seconds and 4 git commands to generate.