Blob Blame History Raw
From aba564ecc621345fcfea2fe883cbfd8d02e54026 Mon Sep 17 00:00:00 2001
From: Jozsef Kadlecsik <kadlec@netfilter.org>
Date: Sun, 20 Nov 2022 22:43:59 +0100
Subject: [PATCH] Fix all debug mode warnings

(cherry picked from commit e39e3466d2d38cdfe83447f391b550e607bc3ce8)

Conflicts:
	lib/parse.c
- Fixed code does not exist due to missing commit 79184e760edfb
  ("Add missing hunk to patch "Allow specifying protocols by number"")
---
 include/libipset/list_sort.h |  4 ++--
 lib/ipset.c                  | 32 +++++++++++++++++++-------------
 2 files changed, 21 insertions(+), 15 deletions(-)

diff --git a/include/libipset/list_sort.h b/include/libipset/list_sort.h
index 70bb02d3d1b68..d9d7b36b8380f 100644
--- a/include/libipset/list_sort.h
+++ b/include/libipset/list_sort.h
@@ -61,7 +61,7 @@ static inline void list_del(struct list_head *entry)
 	// entry->prev = (void *) 0;
 }
 
-static inline void __list_splice(const struct list_head *list,
+static inline void __list_splice(struct list_head *list,
 				 struct list_head *prev,
 				 struct list_head *next)
 {
@@ -75,7 +75,7 @@ static inline void __list_splice(const struct list_head *list,
 	next->prev = last;
 }
 
-static inline void list_splice(const struct list_head *list,
+static inline void list_splice(struct list_head *list,
 			       struct list_head *head)
 {
 	if (!list_empty(list))
diff --git a/lib/ipset.c b/lib/ipset.c
index 50f86aee045bc..f57b07413cba5 100644
--- a/lib/ipset.c
+++ b/lib/ipset.c
@@ -30,6 +30,7 @@
 #include <libipset/ipset.h>			/* prototypes */
 #include <libipset/ip_set_compiler.h>		/* compiler attributes */
 #include <libipset/list_sort.h>			/* lists */
+#include <libipset/xlate.h>			/* ipset_xlate_argv */
 
 static char program_name[] = PACKAGE;
 static char program_version[] = PACKAGE_VERSION;
@@ -936,10 +937,10 @@ static const char *cmd_prefix[] = {
 	[IPSET_TEST]   = "test   SETNAME",
 };
 
-static const struct ipset_xlate_set *
+static struct ipset_xlate_set *
 ipset_xlate_set_get(struct ipset *ipset, const char *name)
 {
-	const struct ipset_xlate_set *set;
+	struct ipset_xlate_set *set;
 
 	list_for_each_entry(set, &ipset->xlate_sets, list) {
 		if (!strcmp(set->name, name))
@@ -958,7 +959,7 @@ ipset_parser(struct ipset *ipset, int oargc, char *oargv[])
 	char *arg0 = NULL, *arg1 = NULL;
 	const struct ipset_envopts *opt;
 	const struct ipset_commands *command;
-	const struct ipset_type *type;
+	const struct ipset_type *type = NULL;
 	struct ipset_session *session = ipset->session;
 	void *p = ipset_session_printf_private(session);
 	int argc = oargc;
@@ -1127,6 +1128,7 @@ ipset_parser(struct ipset *ipset, int oargc, char *oargv[])
 			if (arg0) {
 				const struct ipset_arg *arg;
 				int k;
+				enum ipset_adt c;
 
 				/* Type-specific help, without kernel checking */
 				type = type_find(arg0);
@@ -1136,11 +1138,11 @@ ipset_parser(struct ipset *ipset, int oargc, char *oargv[])
 						"Unknown settype: `%s'", arg0);
 				printf("\n%s type specific options:\n\n", type->name);
 				for (i = 0; cmd_help_order[i] != IPSET_CADT_MAX; i++) {
-					cmd = cmd_help_order[i];
+					c = cmd_help_order[i];
 					printf("%s %s %s\n",
-						cmd_prefix[cmd], type->name, type->cmd[cmd].help);
-					for (k = 0; type->cmd[cmd].args[k] != IPSET_ARG_NONE; k++) {
-						arg = ipset_keyword(type->cmd[cmd].args[k]);
+						cmd_prefix[c], type->name, type->cmd[c].help);
+					for (k = 0; type->cmd[c].args[k] != IPSET_ARG_NONE; k++) {
+						arg = ipset_keyword(type->cmd[c].args[k]);
 						if (!arg->help || arg->help[0] == '\0')
 							continue;
 						printf("               %s\n", arg->help);
@@ -1548,7 +1550,7 @@ ipset_fini(struct ipset *ipset)
 }
 
 /* Ignore the set family, use inet. */
-static const char *ipset_xlate_family(uint8_t family)
+static const char *ipset_xlate_family(uint8_t family UNUSED)
 {
 	return "inet";
 }
@@ -1705,6 +1707,10 @@ ipset_xlate_type_to_nftables(int family, enum ipset_xlate_set_type type,
 		else if (family == AF_INET6)
 			return "ipv6_addr";
 		break;
+	case IPSET_XLATE_TYPE_UNKNOWN:
+		break;
+	default:
+		break;
 	}
 	/* This should not ever happen. */
 	return "unknown";
@@ -1729,7 +1735,6 @@ static int ipset_xlate(struct ipset *ipset, enum ipset_cmd cmd,
 	char buf[64];
 	bool concat;
 	char *term;
-	int i;
 
 	session = ipset_session(ipset);
 	data = ipset_session_data(session);
@@ -1843,7 +1848,7 @@ static int ipset_xlate(struct ipset *ipset, enum ipset_cmd cmd,
 		return -1;
 	case IPSET_CMD_LIST:
 		if (!set) {
-			printf("list sets %s\n",
+			printf("list sets %s %s\n",
 			       ipset_xlate_family(family), table);
 		} else {
 			printf("list set %s %s %s\n",
@@ -1902,6 +1907,8 @@ static int ipset_xlate(struct ipset *ipset, enum ipset_cmd cmd,
 		}
 		if (ipset_data_test(data, IPSET_OPT_ETHER)) {
 			ipset_print_ether(buf, sizeof(buf), data, IPSET_OPT_ETHER, 0);
+			size_t i;
+
 			for (i = 0; i < strlen(buf); i++)
 				buf[i] = tolower(buf[i]);
 
@@ -1964,7 +1971,6 @@ static int ipset_xlate_restore(struct ipset *ipset)
 	struct ipset_session *session = ipset_session(ipset);
 	struct ipset_data *data = ipset_session_data(session);
 	void *p = ipset_session_printf_private(session);
-	const char *filename;
 	enum ipset_cmd cmd;
 	FILE *f = stdin;
 	int ret = 0;
@@ -1973,7 +1979,7 @@ static int ipset_xlate_restore(struct ipset *ipset)
 	if (ipset->filename) {
 		f = fopen(ipset->filename, "r");
 		if (!f) {
-			fprintf(stderr, "cannot open file `%s'\n", filename);
+			fprintf(stderr, "cannot open file `%s'\n", ipset->filename);
 			return -1;
 		}
 	}
@@ -2007,7 +2013,7 @@ static int ipset_xlate_restore(struct ipset *ipset)
 		ipset_data_reset(data);
 	}
 
-	if (filename)
+	if (ipset->filename)
 		fclose(f);
 
 	return ret;
-- 
2.38.0