From: Ian Darwin Date: Fri, 28 Aug 1987 21:36:02 +0000 (+0000) Subject: Withdraw "-" logic as it results in core dumps (why?). X-Git-Tag: FILE3_27~421 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=faeed699f0791b5f891056e775e6f288146666e9;p=file Withdraw "-" logic as it results in core dumps (why?). --- diff --git a/src/file.c b/src/file.c index 65b530be..66cb4cb5 100644 --- a/src/file.c +++ b/src/file.c @@ -15,11 +15,7 @@ int check = 0, /* check format of magic file */ nbytes = 0, /* number of bytes read from a datafile */ nmagic = 0; /* number of valid magic[]s */ FILE *efopen(); -#ifdef MAGIC -char *magicfile = MAGIC; /* where magic be found */ -#else char *magicfile = "/etc/magic"; /* where magic be found */ -#endif char *progname; struct stat statbuf; struct utimbuf { /* for utime(2), belongs in a .h file */ @@ -105,17 +101,9 @@ process(inname) char *inname; { int fd; - char buf[HOWMANY+1]; + char buf[HOWMANY]; struct utimbuf utbuf; - if (strcmp("-", inname) == 0) { - /* Standard input */ - if (fstat(0, &statbuf)<0) - warning("cannot fstat; "); - fd = 0; - goto readit; - } - (void) printf("%s:\t", inname); /* @@ -125,20 +113,15 @@ char *inname; if (fsmagic(inname) != 0) { /*NULLBODY*/; } else if ((fd = open(inname, 0)) < 0) { - /* We can't open it, but we were able to stat it. */ - if (statbuf.st_mode & 0002) ckfputs("writeable, ", stdout); - if (statbuf.st_mode & 0111) ckfputs("executable, ", stdout); - warning("can't read"); + warning("can't open for reading"); } else { -readit: /* * try looking at the first HOWMANY bytes */ if ((nbytes = read(fd, buf, HOWMANY)) == -1) warning("read failed"); - buf[nbytes] = '\0'; /* Terminate string */ /* - * try tests in /etc/magic (or surrogate magic file) + * try tests in /etc/magic (or surrogate magic file */ if (softmagic(buf) == 1) /*NULLBODY*/; @@ -153,16 +136,13 @@ readit: */ ckfputs("data", stdout); } - if (strcmp("-", inname) != 0) { - /* - * Restore access, modification times if we read it. - */ - utbuf.actime = statbuf.st_atime; - utbuf.modtime = statbuf.st_mtime; - (void) utime(inname, &utbuf); - /* we don't care if we lack perms */ - (void) close(fd); - } + /* + * Restore access, modification times if we read the file. + */ + utbuf.actime = statbuf.st_atime; + utbuf.modtime = statbuf.st_mtime; + (void) utime(inname, &utbuf); /* don't care if we lack perms */ + (void) close(fd); } (void) putchar('\n');