diff options
Diffstat (limited to 'iptables/ip6tables-restore.c')
-rw-r--r-- | iptables/ip6tables-restore.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/iptables/ip6tables-restore.c b/iptables/ip6tables-restore.c index cc50bb4f..d36f92da 100644 --- a/iptables/ip6tables-restore.c +++ b/iptables/ip6tables-restore.c @@ -325,8 +325,13 @@ int ip6tables_restore_main(int argc, char *argv[]) strncpy(curtable, table, XT_TABLE_MAXNAMELEN); curtable[XT_TABLE_MAXNAMELEN] = '\0'; - if (tablename != NULL && strcmp(tablename, table) != 0) + if (tablename != NULL && strcmp(tablename, table) != 0) { + if (lock >= 0) { + xtables_unlock(lock); + lock = XT_LOCK_NOT_ACQUIRED; + } continue; + } if (handle) ops->free(handle); |