#ifndef lint
static const char rcsid[] =
- "$Id: tape.c,v 1.29 2001/03/20 10:02:48 stelian Exp $";
+ "$Id: tape.c,v 1.31 2001/03/27 08:09:21 stelian Exp $";
#endif /* not lint */
#include <config.h>
panic("cannot delete tmp file %s: %s\n",
tmpfile, strerror(errno));
}
- if ((ofile = creat(tmpfile, 0600)) < 0) {
+ if ((ofile = open(tmpfile, O_WRONLY | O_CREAT | O_TRUNC, 0600)) < 0) {
panic("cannot create file temp file %s: %s\n",
name, strerror(errno));
}
else {
/* read in the rest of the block based on bufsize */
len = bufsize - TP_BSIZE;
- if (read_a_block(mt, tapebuf+TP_BSIZE, len, &i) <= 0
- || i != len)
+ if (read_a_block(mt, tapebuf+TP_BSIZE, len, &i) < 0
+ || (i != len && i % TP_BSIZE != 0))
errx(1,"Error reading dump file header");
tbufptr = tapebuf;
numtrec = ntrec;