From 9ad9b10c67575ec060943b8978d6f05fb43e92c7 Mon Sep 17 00:00:00 2001 From: Vreixo Formoso Date: Mon, 14 Jan 2008 23:51:16 +0100 Subject: [PATCH] Joliet also need directory sizes to be a multiple of block size. --- src/joliet.c | 8 ++++++++ 1 file changed, 8 insertions(+) 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;