git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 08/14] daemon: fix loops that have mismatching integer types

From
Patrick Steinhardt <ps@pks.im>
Date
Dec 2, 2024, 12:04 UTC
Message-ID
<20241202-pks-sign-compare-v2-8-e7f0ad92a749@pks.im>
In-Reply-To
<20241202-pks-sign-compare-v2-0-e7f0ad92a749@pks.im>

We have several loops in "daemon.c" that use a signed integer to loop through a `size_t`. Adapt them to instead use a `size_t` as counter value.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
---
 daemon.c | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)
diff --git a/daemon.c b/daemon.c
index 68789ceb222eeb389d58998fd00388f289868fc3..bf313bc21a0b82a12064c534af78c9ad51be78e6 100644
--- a/daemon.c
+++ b/daemon.c
@@ -503,8 +503,7 @@ static struct daemon_service daemon_service[] = {
 
 static void enable_service(const char *name, int ena)
 {
-	int i;
-	for (i = 0; i < ARRAY_SIZE(daemon_service); i++) {
+	for (size_t i = 0; i < ARRAY_SIZE(daemon_service); i++) {
 		if (!strcmp(daemon_service[i].name, name)) {
 			daemon_service[i].enabled = ena;
 			return;
@@ -515,8 +514,7 @@ static void enable_service(const char *name, int ena)
 
 static void make_service_overridable(const char *name, int ena)
 {
-	int i;
-	for (i = 0; i < ARRAY_SIZE(daemon_service); i++) {
+	for (size_t i = 0; i < ARRAY_SIZE(daemon_service); i++) {
 		if (!strcmp(daemon_service[i].name, name)) {
 			daemon_service[i].overridable = ena;
 			return;
@@ -737,7 +735,7 @@ static void set_keep_alive(int sockfd)
 static int execute(void)
 {
 	char *line = packet_buffer;
-	int pktlen, len, i;
+	int pktlen, len;
 	char *addr = getenv("REMOTE_ADDR"), *port = getenv("REMOTE_PORT");
 	struct hostinfo hi = HOSTINFO_INIT;
 	struct strvec env = STRVEC_INIT;
@@ -758,7 +756,7 @@ static int execute(void)
 	if (len != pktlen)
 		parse_extra_args(&hi, &env, line + len + 1, pktlen - len - 1);
 
-	for (i = 0; i < ARRAY_SIZE(daemon_service); i++) {
+	for (size_t i = 0; i < ARRAY_SIZE(daemon_service); i++) {
 		struct daemon_service *s = &(daemon_service[i]);
 		const char *arg;
 
@@ -1108,8 +1106,8 @@ static void socksetup(struct string_list *listen_addr, int listen_port, struct s
 	if (!listen_addr->nr)
 		setup_named_sock(NULL, listen_port, socklist);
 	else {
-		int i, socknum;
-		for (i = 0; i < listen_addr->nr; i++) {
+		int socknum;
+		for (size_t i = 0; i < listen_addr->nr; i++) {
 			socknum = setup_named_sock(listen_addr->items[i].string,
 						   listen_port, socklist);
 
@@ -1123,11 +1121,10 @@ static void socksetup(struct string_list *listen_addr, int listen_port, struct s
 static int service_loop(struct socketlist *socklist)
 {
 	struct pollfd *pfd;
-	int i;
 
 	CALLOC_ARRAY(pfd, socklist->nr);
 
-	for (i = 0; i < socklist->nr; i++) {
+	for (size_t i = 0; i < socklist->nr; i++) {
 		pfd[i].fd = socklist->list[i];
 		pfd[i].events = POLLIN;
 	}
@@ -1135,8 +1132,6 @@ static int service_loop(struct socketlist *socklist)
 	signal(SIGCHLD, child_handler);
 
 	for (;;) {
-		int i;
-
 		check_dead_children();
 
 		if (poll(pfd, socklist->nr, -1) < 0) {
@@ -1148,7 +1143,7 @@ static int service_loop(struct socketlist *socklist)
 			continue;
 		}
 
-		for (i = 0; i < socklist->nr; i++) {
+		for (size_t i = 0; i < socklist->nr; i++) {
 			if (pfd[i].revents & POLLIN) {
 				union {
 					struct sockaddr sa;
-- 
2.47.0.366.g5daf58cba8.dirty
Previous: Patrick SteinhardtNext: Patrick Steinhardt
Message 8 of 21 in “Start compiling with `-Wsign-compare`”
  1. 00/14 Start compiling with `-Wsign-compare`Patrick Steinhardt, Dec 2, 2024
  2. 02/14 compat/regex: explicitly ignore "-Wsign-compare" warningsPatrick Steinhardt, Dec 2, 2024
  3. 03/14 compat/win32: fix -Wsign-compare warning in "wWinMain()"Patrick Steinhardt, Dec 2, 2024
  4. 01/14 git-compat-util: introduce macros to disable "-Wsign-compare" warningsPatrick Steinhardt, Dec 2, 2024
  5. 05/14 config.mak.dev: drop `-Wno-sign-compare`Patrick Steinhardt, Dec 2, 2024
  6. 04/14 global: mark code units that generate warnings with `-Wsign-compare`Patrick Steinhardt, Dec 2, 2024
  7. 06/14 diff.h: fix index used to loop through unsigned integerPatrick Steinhardt, Dec 2, 2024
  8. 08/14 daemon: fix loops that have mismatching integer typesPatrick Steinhardt, Dec 2, 2024
  9. 09/14 daemon: fix type of `max_connections`Patrick Steinhardt, Dec 2, 2024
  10. 07/14 global: trivial conversions to fix `-Wsign-compare` warningsPatrick Steinhardt, Dec 2, 2024
  11. Junio C HamanoDec 4, 2024
  12. 11/14 builtin/blame: fix type of `length` variable when emitting object IDPatrick Steinhardt, Dec 2, 2024
  13. 12/14 builtin/patch-id: fix type of `get_one_patchid()`Patrick Steinhardt, Dec 2, 2024
  14. shejialuoDec 2, 2024
  15. Patrick SteinhardtDec 2, 2024
  16. 13/14 scalar: address -Wsign-compare warningsPatrick Steinhardt, Dec 2, 2024
  17. 14/14 t/helper: don't depend on implicit wraparoundPatrick Steinhardt, Dec 2, 2024
  18. 10/14 gpg-interface: address -Wsign-comparison warningsPatrick Steinhardt, Dec 2, 2024
  19. shejialuoDec 2, 2024
  20. sign-compare: 32-bit supportJunio C Hamano, Dec 4, 2024
  21. Patrick SteinhardtDec 5, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.