diff --git a/src/calc.c b/src/calc.c
index f9c6064299a237ab6006381006259c5c3777a9be..0c05a0501d8724a397e59fdcab2aa002d8d672be 100644
--- a/src/calc.c
+++ b/src/calc.c
@@ -152,9 +152,9 @@ int calc_item(struct dir *par, char *name) {
         linksl *= 2;
         if(!linksl) {
           linksl = 64;
-          links = malloc(linksl);
+          links = malloc(linksl*sizeof(struct link_inode));
         } else
-          links = realloc(links, linksl);
+          links = realloc(links, linksl*sizeof(struct link_inode));
       }
       links[i].dev = fs.st_dev;
       links[i].ino = fs.st_ino;