X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=restore%2Fsymtab.c;h=9ad4955463a8beabf6202b5b20d5accbc6035c44;hb=d572dbfde52e312e2cac3b73d1330ac7170ad687;hp=35d0064cb09e958467f40ec2b198ba7b40bfcb24;hpb=ec387a1267f4cac7625cd5b6d1c1f080d39085b3;p=dump.git diff --git a/restore/symtab.c b/restore/symtab.c index 35d0064..9ad4955 100644 --- a/restore/symtab.c +++ b/restore/symtab.c @@ -2,8 +2,7 @@ * Ported to Linux's Second Extended File System as part of the * dump and restore backup suit * Remy Card , 1994-1997 - * Stelian Pop , 1999 - * + * Stelian Pop , 1999-2000 */ /* @@ -37,10 +36,13 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $Id: symtab.c,v 1.5 1999/10/11 13:31:13 stelian Exp $ */ +#ifndef lint +static const char rcsid[] = + "$Id: symtab.c,v 1.9 2000/06/25 18:42:39 stelian Exp $"; +#endif /* not lint */ + /* * These routines maintain the symbol table which tracks the state * of the file system being restored. They provide lookup by either @@ -243,7 +245,7 @@ addentry(char *name, ino_t inum, int type) } else { np = (struct entry *)calloc(1, sizeof(struct entry)); if (np == NULL) - panic("no memory to extend symbol table\n"); + errx(1, "no memory to extend symbol table"); } np->e_type = type & ~LINK; ep = lookupparent(name); @@ -389,7 +391,7 @@ struct strhdr { #define STRTBLINCR (sizeof(struct strhdr)) #define allocsize(size) (((size) + 1 + STRTBLINCR - 1) & ~(STRTBLINCR - 1)) -static struct strhdr strtblhdr[allocsize(NAME_MAX) / STRTBLINCR]; +static struct strhdr strtblhdr[allocsize(MAXNAMLEN) / STRTBLINCR]; /* * Allocate space for a name. It first looks to see if it already @@ -412,7 +414,7 @@ savename(char *name) } else { cp = malloc((unsigned)allocsize(len)); if (cp == NULL) - panic("no space for string table\n"); + errx(1, "no space for string table"); } (void) strcpy(cp, name); return (cp); @@ -552,27 +554,27 @@ initsymtable(char *filename) entry = (struct entry **) calloc((unsigned)entrytblsize, sizeof(struct entry *)); if (entry == (struct entry **)NULL) - panic("no memory for entry table\n"); + errx(1, "no memory for entry table"); ep = addentry(".", ROOTINO, NODE); ep->e_flags |= NEW; return; } if ((fd = open(filename, O_RDONLY, 0)) < 0) { warn("open"); - panic("cannot open symbol table file %s\n", filename); + errx(1, "cannot open symbol table file %s", filename); } if (fstat(fd, &stbuf) < 0) { warn("stat"); - panic("cannot stat symbol table file %s\n", filename); + errx(1, "cannot stat symbol table file %s", filename); } tblsize = stbuf.st_size - sizeof(struct symtableheader); base = calloc(sizeof(char), (unsigned)tblsize); if (base == NULL) - panic("cannot allocate space for symbol table\n"); + errx(1, "cannot allocate space for symbol table"); if (read(fd, base, (int)tblsize) < 0 || read(fd, (char *)&hdr, sizeof(struct symtableheader)) < 0) { warn("read"); - panic("cannot read symbol table file %s\n", filename); + errx(1, "cannot read symbol table file %s", filename); } switch (command) { case 'r':