-$Id: CHANGES,v 1.64 2000/06/11 17:26:04 stelian Exp $
+$Id: CHANGES,v 1.65 2000/06/25 18:42:39 stelian Exp $
Changes between versions 0.4b17 and 0.4b18 (released ??????????????)
====================================================================
to Charles Karney <karney@users.sourceforge.net>
for the bug report.
+3. Changed a few "panic" into "exit", causing restore to
+ be more stable against some attacks (like the last one
+ reported on Bugtraq, although the last version of restore
+ was not vulnerable - just dumped core). Thanks to
+ Andreas Hasenack <andreas@conectiva.com.br> for reporting
+ the bugs to me.
+
Changes between versions 0.4b16 and 0.4b17 (released June 1st, 2000)
====================================================================
#ifndef lint
static const char rcsid[] =
- "$Id: symtab.c,v 1.8 2000/03/01 10:16:05 stelian Exp $";
+ "$Id: symtab.c,v 1.9 2000/06/25 18:42:39 stelian Exp $";
#endif /* not lint */
/*
} 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);
} 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);
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':
#ifndef lint
static const char rcsid[] =
- "$Id: tape.c,v 1.17 2000/06/03 22:24:18 stelian Exp $";
+ "$Id: tape.c,v 1.18 2000/06/25 18:42:39 stelian Exp $";
#endif /* not lint */
#include <sys/param.h>
Dprintf(stdout, "maxino = %ld\n", (long)maxino);
map = calloc((unsigned)1, (unsigned)howmany(maxino, NBBY));
if (map == NULL)
- panic("no memory for active inode map\n");
+ errx(1, "no memory for active inode map");
usedinomap = map;
curfile.action = USING;
getfile(xtrmap, xtrmapskip);
errx(1, "Cannot find file dump list");
map = calloc((unsigned)1, (unsigned)howmany(maxino, NBBY));
if (map == (char *)NULL)
- panic("no memory for file dump list\n");
+ errx(1, "no memory for file dump list");
dumpmap = map;
curfile.action = USING;
getfile(xtrmap, xtrmapskip);