On the last page, just the remaining data is dump, ignoring any
padding. However, a page is dumped like in every loop, resulting in an
extra page on the output file. Just dump an entire page when it isn't
the last one.
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
if (r != len)
goto out;
}
+ } else {
+ r = read(fd, page, pgsz);
+ if (r != pgsz)
+ goto out;
+ r = write(out, page, pgsz);
+ if (r != pgsz)
+ goto out;
}
- r = read(fd, page, pgsz);
- if (r != pgsz)
- goto out;
- r = write(out, page, pgsz);
- if (r != pgsz)
- goto out;
}
free(page);
close(out);