From 4873ff3fb97b60abf53d690b7ca9b3bd0f5c4ee8 Mon Sep 17 00:00:00 2001 From: Bryan Steele Date: Wed, 28 Jun 2017 17:14:16 +0000 Subject: Fix stdin file read support, accidentally broken in my last commit. --- usr.bin/file/file.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'usr.bin') diff --git a/usr.bin/file/file.c b/usr.bin/file/file.c index d14e62ac0ee..bd1cddd29fe 100644 --- a/usr.bin/file/file.c +++ b/usr.bin/file/file.c @@ -1,4 +1,4 @@ -/* $OpenBSD: file.c,v 1.62 2017/06/28 15:42:49 deraadt Exp $ */ +/* $OpenBSD: file.c,v 1.63 2017/06/28 17:14:15 brynet Exp $ */ /* * Copyright (c) 2015 Nicholas Marriott @@ -217,12 +217,16 @@ prepare_input(struct input_file *inf, const char *path) { int fd, mode, error; + inf->path = path; + if (strcmp(path, "-") == 0) { if (fstat(STDIN_FILENO, &inf->sb) == -1) { inf->error = errno; inf->fd = -1; + return; } inf->fd = STDIN_FILENO; + return; } if (Lflag) @@ -232,6 +236,7 @@ prepare_input(struct input_file *inf, const char *path) if (error == -1) { inf->error = errno; inf->fd = -1; + return; } /* We don't need them, so don't open directories or symlinks. */ @@ -245,7 +250,6 @@ prepare_input(struct input_file *inf, const char *path) if (S_ISLNK(mode)) read_link(inf, path); inf->fd = fd; - inf->path = path; } static void -- cgit v1.2.3