From f12d2a5554e76e2955707aa4f733913b09020488 Mon Sep 17 00:00:00 2001 From: Erik Ekman Date: Tue, 13 May 2025 21:52:43 +0200 Subject: [PATCH] Optimize strlen calls in putname Working version of https://github.com/yarrick/iodine/pull/111 --- src/read.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/read.c b/src/read.c index b33a376..a6f89c1 100644 --- a/src/read.c +++ b/src/read.c @@ -168,15 +168,16 @@ putname(char **buf, size_t buflen, const char *host) word = strtok(h, "."); while(word) { - if (strlen(word) > 63 || strlen(word) > left) { + size_t word_len = strlen(word); + if (word_len > 63 || word_len > left) { free(h); return -1; } - left -= (strlen(word) + 1); - *p++ = (char)strlen(word); - memcpy(p, word, strlen(word)); - p += strlen(word); + left -= (word_len + 1); + *p++ = (char)word_len; + memcpy(p, word, word_len); + p += word_len; word = strtok(NULL, "."); }