From 7960dcf9193aeff5238aa005549935e0c08dc293 Mon Sep 17 00:00:00 2001 From: Chris Allegretta Date: Wed, 13 Dec 2000 15:01:29 +0000 Subject: [PATCH] Removed unneeded st2 var, don't open device files in open_file() git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@407 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 2 ++ files.c | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index b3bca481..0dbd2356 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,8 @@ General - Change open call flags, basically copy joe's way of doing it so a more recent version will actually be included in (un)stable. - Remove useless fstat call. + open_file() + - Added check for S_ISBLK and S_ISCHR, don't open device files! - nano.c: renumber() - Dont stupidly assign the value of prev->lineno if prev == NULL! diff --git a/files.c b/files.c index fedba881..aa797e14 100644 --- a/files.c +++ b/files.c @@ -229,8 +229,14 @@ int open_file(char *filename, int insert, int quiet) statusbar("%s: %s", strerror(errno), filename); return -1; } else { /* File is A-OK */ - if (S_ISDIR(fileinfo.st_mode)) { - statusbar(_("File \"%s\" is a directory"), filename); + if (S_ISDIR(fileinfo.st_mode) || S_ISCHR(fileinfo.st_mode) || + S_ISBLK(fileinfo.st_mode)) { + if (S_ISDIR(fileinfo.st_mode)) + statusbar(_("File \"%s\" is a directory"), filename); + else + /* Don't open character or block files. Sorry, /dev/sndstat! */ + statusbar(_("File \"%s\" is a device file"), filename); + if (!insert) new_file(); return -1; @@ -303,7 +309,7 @@ int write_file(char *name, int tmp) char buf[PATH_MAX + 1]; filestruct *fileptr; int fd, mask = 0, realexists, anyexists; - struct stat st, lst, st2; + struct stat st, lst; static char *realname = NULL; if (!strcmp(name, "")) { -- 2.39.5