summaryrefslogtreecommitdiffstats
path: root/communication.c
diff options
context:
space:
mode:
Diffstat (limited to 'communication.c')
-rw-r--r--communication.c6
1 files changed, 4 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