This patch adds a call to access to check the readability of the configuration file. Signed-off-by: Eric Leblond <eric@xxxxxxxxx> --- src/conffile.c | 11 ++++++++++- src/ulogd.c | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/conffile.c b/src/conffile.c index dd0ed8f..616d7a9 100644 --- a/src/conffile.c +++ b/src/conffile.c @@ -16,9 +16,11 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + #include <ulogd/ulogd.h> #include <ulogd/common.h> #include <ulogd/conffile.h> +#include <unistd.h> /* points to config entry with error */ @@ -89,10 +91,17 @@ static char *get_word(char *line, char *not, char *buf) /* register config file with us */ int config_register_file(const char *file) { - /* FIXME: stat of file */ if (fname) return 1; + if (access(file, R_OK) != 0) { + ulogd_log(ULOGD_ERROR, + "unable to read configfile \"%s\": %s\n", + file, + strerror(errno)); + return 1; + } + pr_debug("%s: registered config file '%s'\n", __func__, file); fname = (char *) malloc(strlen(file)+1); diff --git a/src/ulogd.c b/src/ulogd.c index c7617d9..f8c8ed0 100644 --- a/src/ulogd.c +++ b/src/ulogd.c @@ -1216,7 +1216,7 @@ int main(int argc, char* argv[]) /* parse config file */ if (parse_conffile("global", &ulogd_kset)) { - ulogd_log(ULOGD_FATAL, "parse_conffile\n"); + ulogd_log(ULOGD_FATAL, "unable to parse config file\n"); warn_and_exit(daemonize); } -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html