diff options
author | Bart De Schuymer <bdschuym@pandora.be> | 2002-08-24 21:01:21 +0000 |
---|---|---|
committer | Bart De Schuymer <bdschuym@pandora.be> | 2002-08-24 21:01:21 +0000 |
commit | 62a7fdb81507a7c364c49db1361e6c7728764b17 (patch) | |
tree | 33f9a1c0184a916f521ad8f9a1a937299b3c7fac | |
parent | a53ce8effe08e708b440f5249803eb4aa29e2f96 (diff) |
*** empty log message ***
-rw-r--r-- | communication.c | 6 | ||||
-rw-r--r-- | ebtables.c | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/communication.c b/communication.c index 184a4c1..887ee08 100644 --- a/communication.c +++ b/communication.c @@ -656,9 +656,11 @@ int get_table(struct ebt_u_replace *u_repl) struct ebt_u_entry **u_e; strcpy(repl.name, u_repl->name); - if (u_repl->filename != NULL) + if (u_repl->filename != NULL) { retrieve_from_file(u_repl->filename, &repl, u_repl->command); - else if (retrieve_from_kernel(&repl, u_repl->command) == -1) + // -L with a wrong table name should be dealt with silently + strcpy(u_repl->name, repl.name); + } else if (retrieve_from_kernel(&repl, u_repl->command) == -1) return -1; // translate the struct ebt_replace to a struct ebt_u_replace @@ -1462,6 +1462,10 @@ static void get_kernel_table(const char *modprobe) print_error("The kernel doesn't support the ebtables " "%s table", replace.name); } + // when listing a table contained in a file, we don't expect the user + // to know what the table's name is + if ( !(table = find_table(replace.name)) ) + print_error("Bad table name"); } #define print_if_l_error print_error("Interface name length must be less " \ |