diff options
| author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-05-01 16:55:08 +0200 | 
|---|---|---|
| committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-05-02 12:40:06 +0200 | 
| commit | 31d327c3780aecdb78304263f676ff89a8ea93d1 (patch) | |
| tree | 747b11109f1748011d79ee7f388e89025b065cf5 /unpack | |
| parent | 6ba88daae14e64009619562209060532eb6eadbb (diff) | |
unsquashfs: read ID table from file
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'unpack')
| -rw-r--r-- | unpack/unsquashfs.c | 12 | 
1 files changed, 11 insertions, 1 deletions
| diff --git a/unpack/unsquashfs.c b/unpack/unsquashfs.c index 4606366..f5c3a43 100644 --- a/unpack/unsquashfs.c +++ b/unpack/unsquashfs.c @@ -1,6 +1,7 @@  /* SPDX-License-Identifier: GPL-3.0-or-later */  #include "squashfs.h"  #include "compress.h" +#include "id_table.h"  #include <stdlib.h>  #include <unistd.h> @@ -14,6 +15,7 @@ int main(int argc, char **argv)  	int fd, status = EXIT_FAILURE;  	sqfs_super_t super;  	compressor_t *cmp; +	id_table_t idtbl;  	if (argc != 2) {  		fprintf(stderr, "Usage: %s <filename>\n", __progname); @@ -56,8 +58,16 @@ int main(int argc, char **argv)  	if (cmp == NULL)  		goto out; -	status = EXIT_SUCCESS; +	if (id_table_init(&idtbl)) +		goto out_cmp; + +	if (id_table_read(&idtbl, fd, &super, cmp)) +		goto out_idtbl; +	status = EXIT_SUCCESS; +out_idtbl: +	id_table_cleanup(&idtbl); +out_cmp:  	cmp->destroy(cmp);  out:  	close(fd); | 
