From 74a064d9f15fa2d534e8b2d1ade68d10d5b65dfd Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Tue, 16 Jul 2019 21:42:00 +0200 Subject: Fix directory index creation Digging around in kernel internals and mksquashfs reveals that it is actually a buffer offset into the raw directory buffer. The error hasn't been noted until now because of the bug fixed by a5428e0. Signed-off-by: David Oberhollenzer --- lib/sqfs/write_dir.c | 2 +- lib/sqfs/write_inode.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/sqfs/write_dir.c b/lib/sqfs/write_dir.c index 9f8923b..909e0bb 100644 --- a/lib/sqfs/write_dir.c +++ b/lib/sqfs/write_dir.c @@ -99,7 +99,7 @@ int meta_writer_write_dir(meta_writer_t *dm, dir_info_t *dir, i = (*index)->num_nodes++; (*index)->idx_nodes[i].node = c; (*index)->idx_nodes[i].block = block; - (*index)->idx_nodes[i].offset = offset; + (*index)->idx_nodes[i].index = dir->size; hdr.count = htole32(count - 1); hdr.start_block = htole32(c->inode_ref >> 16); diff --git a/lib/sqfs/write_inode.c b/lib/sqfs/write_inode.c index 611b0e1..a013d6f 100644 --- a/lib/sqfs/write_inode.c +++ b/lib/sqfs/write_inode.c @@ -101,7 +101,7 @@ static int write_dir_index(dir_index_t *diridx, meta_writer_t *im) for (i = 0; i < diridx->num_nodes; ++i) { idx.start_block = htole32(diridx->idx_nodes[i].block); - idx.index = htole32(diridx->idx_nodes[i].offset); + idx.index = htole32(diridx->idx_nodes[i].index); idx.size = strlen(diridx->idx_nodes[i].node->name) - 1; idx.size = htole32(idx.size); -- cgit v1.2.3