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

[PATCH v4 10/16] daemon: fix loops that have mismatching integer types

From
Patrick Steinhardt <ps@pks.im>
Date
Dec 6, 2024, 10:27 UTC
Message-ID
<20241206-pks-sign-compare-v4-10-0344c6dfb219@pks.im>
In-Reply-To
<20241206-pks-sign-compare-v4-0-0344c6dfb219@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 57 of 66 in “Start compiling with `-Wsign-compare`”
  1. 00/10 Start compiling with `-Wsign-compare`Patrick Steinhardt, Nov 29, 2024
  2. 02/10 compat/regex: explicitly ignore "-Wsign-compare" warningsPatrick Steinhardt, Nov 29, 2024
  3. 01/10 git-compat-util: introduce macros to disable "-Wsign-compare" warningsPatrick Steinhardt, Nov 29, 2024
  4. 03/10 compat/win32: fix -Wsign-compare warning in "wWinMain()"Patrick Steinhardt, Nov 29, 2024
  5. 05/10 config.mak.dev: drop `-Wno-sign-compare`Patrick Steinhardt, Nov 29, 2024
  6. 06/10 global: fix unsigned integer promotions in ternary statementsPatrick Steinhardt, Nov 29, 2024
  7. shejialuoNov 30, 2024
  8. Patrick SteinhardtDec 2, 2024
  9. Jeff KingDec 1, 2024
  10. Patrick SteinhardtDec 2, 2024
  11. 04/10 global: mark code units that generate warnings with `-Wsign-compare`Patrick Steinhardt, Nov 29, 2024
  12. 07/10 diff.h: fix index used to loop through unsigned integerPatrick Steinhardt, Nov 29, 2024
  13. 09/10 daemon: fix loops that have mismatching integer typesPatrick Steinhardt, Nov 29, 2024
  14. Jeff KingDec 1, 2024
  15. Patrick SteinhardtDec 2, 2024
  16. Jeff KingDec 5, 2024
  17. 08/10 global: trivial conversions to fix `-Wsign-compare` warningsPatrick Steinhardt, Nov 29, 2024
  18. Jeff KingDec 1, 2024
  19. Patrick SteinhardtDec 2, 2024
  20. 10/10 daemon: fix type of `max_connections`Patrick Steinhardt, Nov 29, 2024
  21. Jeff KingDec 1, 2024
  22. shejialuoNov 30, 2024
  23. Patrick SteinhardtDec 2, 2024
  24. Jeff KingDec 1, 2024
  25. Patrick SteinhardtDec 2, 2024
  26. 00/15 Start compiling with `-Wsign-compare`Patrick Steinhardt, Dec 5, 2024
  27. 01/15 git-compat-util: introduce macros to disable "-Wsign-compare" warningsPatrick Steinhardt, Dec 5, 2024
  28. 02/15 compat/regex: explicitly ignore "-Wsign-compare" warningsPatrick Steinhardt, Dec 5, 2024
  29. 03/15 compat/win32: fix -Wsign-compare warning in "wWinMain()"Patrick Steinhardt, Dec 5, 2024
  30. 05/15 config.mak.dev: drop `-Wno-sign-compare`Patrick Steinhardt, Dec 5, 2024
  31. 04/15 global: mark code units that generate warnings with `-Wsign-compare`Patrick Steinhardt, Dec 5, 2024
  32. 06/15 diff.h: fix index used to loop through unsigned integerPatrick Steinhardt, Dec 5, 2024
  33. 07/15 sign-compare: 32-bit supportPatrick Steinhardt, Dec 5, 2024
  34. Jeff KingDec 5, 2024
  35. Patrick SteinhardtDec 6, 2024
  36. 08/15 global: trivial conversions to fix `-Wsign-compare` warningsPatrick Steinhardt, Dec 5, 2024
  37. 09/15 daemon: fix loops that have mismatching integer typesPatrick Steinhardt, Dec 5, 2024
  38. 11/15 gpg-interface: address -Wsign-comparison warningsPatrick Steinhardt, Dec 5, 2024
  39. 10/15 daemon: fix type of `max_connections`Patrick Steinhardt, Dec 5, 2024
  40. 12/15 builtin/blame: fix type of `length` variable when emitting object IDPatrick Steinhardt, Dec 5, 2024
  41. 13/15 builtin/patch-id: fix type of `get_one_patchid()`Patrick Steinhardt, Dec 5, 2024
  42. 14/15 scalar: address -Wsign-compare warningsPatrick Steinhardt, Dec 5, 2024
  43. 15/15 t/helper: don't depend on implicit wraparoundPatrick Steinhardt, Dec 5, 2024
  44. 00/16 Start compiling with `-Wsign-compare`Patrick Steinhardt, Dec 6, 2024
  45. 01/16 git-compat-util: introduce macros to disable "-Wsign-compare" warningsPatrick Steinhardt, Dec 6, 2024
  46. karthik nayakDec 6, 2024
  47. 02/16 compat/regex: explicitly ignore "-Wsign-compare" warningsPatrick Steinhardt, Dec 6, 2024
  48. 03/16 compat/win32: fix -Wsign-compare warning in "wWinMain()"Patrick Steinhardt, Dec 6, 2024
  49. 05/16 config.mak.dev: drop `-Wno-sign-compare`Patrick Steinhardt, Dec 6, 2024
  50. 04/16 global: mark code units that generate warnings with `-Wsign-compare`Patrick Steinhardt, Dec 6, 2024
  51. 06/16 diff.h: fix index used to loop through unsigned integerPatrick Steinhardt, Dec 6, 2024
  52. 07/16 csum-file: fix -Wsign-compare warning on 32-bit platformPatrick Steinhardt, Dec 6, 2024
  53. 08/16 pkt-line: fix -Wsign-compare warning on 32 bit platformPatrick Steinhardt, Dec 6, 2024
  54. Jeff KingDec 8, 2024
  55. Junio C HamanoDec 9, 2024
  56. 09/16 global: trivial conversions to fix `-Wsign-compare` warningsPatrick Steinhardt, Dec 6, 2024
  57. 10/16 daemon: fix loops that have mismatching integer typesPatrick Steinhardt, Dec 6, 2024
  58. 11/16 daemon: fix type of `max_connections`Patrick Steinhardt, Dec 6, 2024
  59. 12/16 gpg-interface: address -Wsign-comparison warningsPatrick Steinhardt, Dec 6, 2024
  60. 13/16 builtin/blame: fix type of `length` variable when emitting object IDPatrick Steinhardt, Dec 6, 2024
  61. Johannes SchindelinJan 8, 2025
  62. Patrick SteinhardtJan 9, 2025
  63. 14/16 builtin/patch-id: fix type of `get_one_patchid()`Patrick Steinhardt, Dec 6, 2024
  64. 15/16 scalar: address -Wsign-compare warningsPatrick Steinhardt, Dec 6, 2024
  65. 16/16 t/helper: don't depend on implicit wraparoundPatrick Steinhardt, Dec 6, 2024
  66. karthik nayakDec 6, 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.