From 271c68160932f001e3f0af589f0235490865db69 Mon Sep 17 00:00:00 2001 From: Duncan Laurie Date: Sun, 19 Mar 2006 18:22:39 +0000 Subject: [PATCH] disable file paranoia checks on read files by default --- ipmitool/configure.in | 10 +++++++++- ipmitool/lib/helper.c | 12 ++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/ipmitool/configure.in b/ipmitool/configure.in index 24cc1b0..550dd12 100644 --- a/ipmitool/configure.in +++ b/ipmitool/configure.in @@ -3,7 +3,7 @@ dnl autoconf for ipmitool dnl AC_INIT([src/ipmitool.c]) AC_CANONICAL_SYSTEM -AM_INIT_AUTOMAKE([ipmitool], [1.8.6]) +AM_INIT_AUTOMAKE([ipmitool], [1.8.7]) AM_CONFIG_HEADER(config.h) AC_CONFIG_SRCDIR([src/ipmitool.c]) AC_PREREQ(2.50) @@ -291,6 +291,14 @@ AC_ARG_ENABLE([buildcheck], AC_SUBST(CFLAGS) +dnl Enable extra file security paranoia +AC_ARG_ENABLE([file-security], + [AC_HELP_STRING([--enable-file-security], + [enable extra security checks on files opened for read [default=no]])], + [if test "x$enable_file_security" != "xno"; then + AC_DEFINE(ENABLE_FILE_SECURITY, [1], [Define to 1 for extra file security.]) + fi], []) + dnl Generate files for build AC_CONFIG_FILES([Makefile doc/Makefile diff --git a/ipmitool/lib/helper.c b/ipmitool/lib/helper.c index 7043d51..bade2de 100644 --- a/ipmitool/lib/helper.c +++ b/ipmitool/lib/helper.c @@ -275,6 +275,18 @@ ipmi_open_file(const char * file, int rw) } } +#ifndef ENABLE_FILE_SECURITY + if (!rw) { + /* on read skip the extra checks */ + fp = fopen(file, "r"); + if (fp == NULL) { + lperror(LOG_ERR, "Unable to open file %s", file); + return NULL; + } + return fp; + } +#endif + /* it exists - only regular files, not links */ if (S_ISREG(st1.st_mode) == 0) { lprintf(LOG_ERR, "File %s has invalid mode: %d",