view pirollback/inopath.c @ 103:a10acb1688e0

thumbdis: buglet in the decoding of sub-from-sp
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Mon, 31 Mar 2014 01:59:28 +0000
parents 18472a2ccf55
children
line wrap: on
line source

#include <stdio.h>
#include <stdlib.h>
#include "pathname.h"

extern char *imgfile;
extern int last_inode;

main(argc, argv)
	char **argv;
{
	int ino;
	char *strtoul_endp;
	char pathname[PATHNAME_BUF_SIZE];

	if (argc != 3) {
usage:		fprintf(stderr, "usage: %s ffs-image inode\n", argv[0]);
		exit(1);
	}
	imgfile = argv[1];
	ino = strtoul(argv[2], &strtoul_endp, 16);
	if (!argv[2][0] || *strtoul_endp)
		goto usage;
	read_img_file();
	read_inodes();
	if (ino < 1 || ino > last_inode) {
		fprintf(stderr, "%s: bad inode number specified\n", argv[0]);
		exit(1);
	}
	walk_tree();
	check_object_names();
	if (pathname_of_inode(ino, pathname) < 0) {
		fprintf(stderr, "unable to get the pathname\n");
		exit(1);
	}
	printf("%s\n", pathname);
	exit(0);
}