"GOT", but the "O" is a cute, smiling pufferfish. Index | Thread | Search

From:
Omar Polo <op@omarpolo.com>
Subject:
unintended tautology in build_refs_str()?
To:
gameoftrees@openbsd.org
Date:
Tue, 13 Jun 2023 21:56:43 +0200

Download raw body.

Thread
got distracted by a thing and started to look at all strlen() calls (:

This one seems strange, s[strlen(s)] == '\0' should always be true,
right?  I suppose the intent was to not skip remotes/foo/HEAD-xyz.

diff 33ff3adfa450b62d9bdfb406fb5d9f57a9da8a6e 6833fb12fde23540b00be57035e62a37a703ba33
commit - 33ff3adfa450b62d9bdfb406fb5d9f57a9da8a6e
commit + 6833fb12fde23540b00be57035e62a37a703ba33
blob - f66d5b661f6d31bdbcb1027d5e6deaab89465001
blob + 9ddcf2204a92d9d781114c1b05f5b946f98b26ab
--- got/got.c
+++ got/got.c
@@ -4101,7 +4101,7 @@ build_refs_str(char **refs_str, struct got_reflist_hea
 				continue;
 			name += 8;
 			s = strstr(name, "/" GOT_REF_HEAD);
-			if (s != NULL && s[strlen(s)] == '\0')
+			if (s != NULL && !strcmp(s, "/" GOT_REF_HEAD))
 				continue;
 		}
 		err = got_ref_resolve(&ref_id, repo, re->ref);
blob - bd2b583446e8eb32ab6649c2c1316ab6da2f1b6e
blob + 56083f9e2092c3282a6f4e217890ca9ed534e5a9
--- tog/tog.c
+++ tog/tog.c
@@ -2342,7 +2342,7 @@ build_refs_str(char **refs_str, struct got_reflist_hea
 		if (strncmp(name, "remotes/", 8) == 0) {
 			name += 8;
 			s = strstr(name, "/" GOT_REF_HEAD);
-			if (s != NULL && s[strlen(s)] == '\0')
+			if (s != NULL && !strcmp(s, "/" GOT_REF_HEAD))
 				continue;
 		}
 		err = got_ref_resolve(&ref_id, repo, re->ref);