]> git.itanic.dy.fi Git - scan-pagemap/commitdiff
parse_pageframe: Avoid short reads
authorTimo Kokkonen <kaapeli@itanic.dy.fi>
Fri, 16 Jul 2010 11:58:54 +0000 (14:58 +0300)
committerTimo Kokkonen <kaapeli@itanic.dy.fi>
Fri, 16 Jul 2010 11:58:54 +0000 (14:58 +0300)
The reads need to be always 64 bit aligned and read length must be a
multiple of 64 bits.

Signed-off-by: Timo Kokkonen <kaapeli@itanic.dy.fi>
parse.c

diff --git a/parse.c b/parse.c
index 58082869c846c8845599471ffee0c8eb87614d6e..096c4ef685ad8bce81118c4f9a79995bd4fddda5 100644 (file)
--- a/parse.c
+++ b/parse.c
@@ -167,9 +167,10 @@ static int parse_pageframe(FILE *file, struct pageframe *pf_tree,
                }
 
                for (i = 0; i < len; i++) {
-                       if (!ret)
+                       if (!ret) {
                                ret = fread(&pf, 1,
-                                       MIN(sizeof(pf), len - i), file);
+                                       MIN(sizeof(pf), (len - i) * 8), file);
+                       }
                        if (ret < 0) {
                                error = errno;
                                continue;