From 17e12d6cd6dc769d714991da97db153e7225180e Mon Sep 17 00:00:00 2001
From: pommicket <pommicket@gmail.com>
Date: Sat, 10 Dec 2022 12:32:21 -0500
Subject: fix slight bug in strn_dup

---
 util.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/util.c b/util.c
index cee9cc3..07cd8ea 100644
--- a/util.c
+++ b/util.c
@@ -69,9 +69,17 @@ static bool streq(char const *a, char const *b) {
 	return strcmp(a, b) == 0;
 }
 
+static size_t strn_len(const char *src, size_t n) {
+	const char *p = memchr(src, '\0', n);
+	if (p)
+		return (size_t)(p - src);
+	else
+		return n;
+}
+
 // duplicates at most n characters from src
 static char *strn_dup(char const *src, size_t n) {
-	size_t len = strlen(src);
+	size_t len = strn_len(src, n);
 	if (n > len)
 		n = len;
 	char *ret = malloc(n + 1);
-- 
cgit v1.2.3