From 316d8efbb7cd2d252c8627df77261a466493d09b Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Fri, 26 Nov 2021 21:11:25 +0100 Subject: libxtables: Extend basic_exit_err() Basically merge the function with xtables_exit_error, printing a status-specific footer for parameter or version problems. Signed-off-by: Phil Sutter --- libxtables/xtables.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'libxtables/xtables.c') diff --git a/libxtables/xtables.c b/libxtables/xtables.c index d670175d..50fd6a44 100644 --- a/libxtables/xtables.c +++ b/libxtables/xtables.c @@ -90,6 +90,18 @@ void basic_exit_err(enum xtables_exittype status, const char *msg, ...) vfprintf(stderr, msg, args); va_end(args); fprintf(stderr, "\n"); + if (status == PARAMETER_PROBLEM) { + if (line != -1) + fprintf(stderr, "Error occurred at line: %d\n", line); + fprintf(stderr, "Try `%s -h' or '%s --help' for more information.\n", + xt_params->program_name, xt_params->program_name); + } else if (status == VERSION_PROBLEM) { + fprintf(stderr, + "Perhaps %s or your kernel needs to be upgraded.\n", + xt_params->program_name); + } + /* On error paths, make sure that we don't leak memory */ + xtables_free_opts(1); exit(status); } -- cgit v1.2.3