diff --git a/src/joliet.c b/src/joliet.c index 64d1119..cd54104 100644 --- a/src/joliet.c +++ b/src/joliet.c @@ -339,6 +339,14 @@ size_t calc_dir_size(Ecma119Image *t, JolietNode *dir) len += dirent_len; } } + + /* + * The size of a dir is always a multiple of block size, as we must add + * the size of the unused space after the last directory record + * (ECMA-119, 6.8.1.3) + */ + len = div_up(len, BLOCK_SIZE) * BLOCK_SIZE; + /* cache the len */ dir->info.dir.len = len; return len;