aboutsummaryrefslogtreecommitdiff
path: root/lib/sqfs/read_tree.c
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-10-07 11:20:55 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-10-07 12:22:05 +0200
commita68eb730558fb90bc8d9524564d8f9e58f3ccac1 (patch)
treede7a678b28786ec2e47e4956d8cdb0f4466f3d5c /lib/sqfs/read_tree.c
parentc7fdb2b305ed8b4deb67bfc6ef3257e7e6773397 (diff)
Improve ABI backward & forward compatibillity
- Padd the compressor config union - 128 bytes aught to be enough for everyone, i.e. future compressors. - Insist that the padding space is initialized to 0. If a field gets added to an existing compressor, it can test for 0 as a sentinel value. - Add a size field to the hook structure, aka "the Microsoft way". - The explanation is in the comment. - Don't make the Microsoft mistake of checking for >=, insist on *exact* size match. Future users will need a fallback if their hooks are rejected. But at least they will be rejected instead of silently not being used. - Add an unsupported flag check to the dir tree reader. - Add a basic abi unit test that, for now, checks the size of the compressor config struct fields. Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'lib/sqfs/read_tree.c')
-rw-r--r--lib/sqfs/read_tree.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/sqfs/read_tree.c b/lib/sqfs/read_tree.c
index 46c7ec0..3a43769 100644
--- a/lib/sqfs/read_tree.c
+++ b/lib/sqfs/read_tree.c
@@ -199,6 +199,9 @@ int sqfs_dir_reader_get_full_hierarchy(sqfs_dir_reader_t *rd,
const char *ptr;
int ret;
+ if (flags & ~SQFS_TREE_ALL_FLAGS)
+ return SQFS_ERROR_UNSUPPORTED;
+
ret = sqfs_dir_reader_get_root_inode(rd, &inode);
if (ret)
return ret;