]> Pileus Git - grits/blobdiff - src/wsr88ddec.c
cleanup
[grits] / src / wsr88ddec.c
index 107f279265e5e95e0793c0332393f3c698283774..50152722da65859c4e4829a39acc9abf504acb59 100644 (file)
@@ -84,27 +84,32 @@ int main(int argc, char **argv)
 
        /* Clear header */
        //debug("reading header\n");
-       fread (buf, 1, 24, input);
-       fwrite(buf, 1, 24, output);
+       if (!fread (buf, 24, 1, input))
+               err(1, "error reading header");
+       if (!fwrite(buf, 24, 1, output))
+               err(1, "error writing header");
 
        //debug("reading body\n");
        while ((st = fread(&size, 1, 4, input))) {
+               //debug("size=%08x\n", size);
                //debug("read %u bytes\n", st);
                //fwrite(&size, 1, 4, output); // DEBUG
                size = abs(ntohl(size));
                if (size < 0)
                        return 0;
                //debug("size = %x\n", size);
-               if (size > 10*1024*1024)
+               if (size > 20*1024*1024)
                        err(1, "sanity check failed, buf is to big: %d", size);
                buf = realloc(buf, size);
-               fread (buf, 1, size, input);
+               if (!fread(buf, size, 1, input))
+                       err(1, "error reading data");
                //fwrite(buf, 1, size, output); // DEBUG
 
                int dec_len;
                char *dec = bunzip2(buf, size, &dec_len);
                // debug("decompressed %u bytes\n", dec_len);
-               fwrite(dec, 1, dec_len, output);
+               if (!fwrite(dec, 1, dec_len, output))
+                       err(1, "error writing data");
                free(dec);
        }