X-Git-Url: https://git.wh0rd.org/?p=dump.git;a=blobdiff_plain;f=restore%2Fsymtab.c;h=06548bcee6e5a84c7bbd0e8eae6c614eb877b57d;hp=4a2e1abe969d5053c91864a16f93a635ede683cf;hb=26ce8fc8f42b8cdd92e9eaadae48be256813b001;hpb=684154694394c35b594ca101b15796898888ebde diff --git a/restore/symtab.c b/restore/symtab.c index 4a2e1ab..06548bc 100644 --- a/restore/symtab.c +++ b/restore/symtab.c @@ -37,7 +37,7 @@ #ifndef lint static const char rcsid[] = - "$Id: symtab.c,v 1.24 2005/01/14 13:04:07 stelian Exp $"; + "$Id: symtab.c,v 1.26 2005/07/07 08:47:16 stelian Exp $"; #endif /* not lint */ /* @@ -50,6 +50,7 @@ static const char rcsid[] = */ #include +#include #include #include @@ -554,7 +555,7 @@ dumpsymtable(char *filename, long checkpt) Vprintf(stdout, "Check pointing the restore\n"); if (Nflag) return; - if ((fd = fopen(filename, "w")) == NULL) { + if ((fd = FOPEN(filename, "w")) == NULL) { warn("fopen"); panic("cannot create save file %s for symbol table\n", filename); @@ -654,7 +655,7 @@ initsymtable(char *filename) struct entry *ep; struct entry *baseep, *lep; struct symtableheader hdr; - struct stat stbuf; + struct STAT stbuf; long i; int fd; @@ -669,11 +670,11 @@ initsymtable(char *filename) ep->e_flags |= NEW; return; } - if ((fd = open(filename, O_RDONLY, 0)) < 0) { + if ((fd = OPEN(filename, O_RDONLY, 0)) < 0) { warn("open"); errx(1, "cannot open symbol table file %s", filename); } - if (fstat(fd, &stbuf) < 0) { + if (FSTAT(fd, &stbuf) < 0) { warn("stat"); errx(1, "cannot stat symbol table file %s", filename); } @@ -712,8 +713,10 @@ initsymtable(char *filename) panic("initsymtable called from command %c\n", command); break; } - resizemaps(maxino, hdr.maxino); - maxino = hdr.maxino; + if (hdr.maxino > maxino) { + resizemaps(maxino, hdr.maxino); + maxino = hdr.maxino; + } entrytblsize = hdr.entrytblsize; entry = (struct entry **) (base + tblsize - (entrytblsize * sizeof(struct entry *)));