This commit is contained in:
Herman Semenoff 2025-04-08 21:49:18 +00:00 committed by GitHub
commit e2b2d5af18
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -158,7 +158,7 @@ int
putname(char **buf, size_t buflen, const char *host) putname(char **buf, size_t buflen, const char *host)
{ {
char *word; char *word;
int left; size_t left;
char *h; char *h;
char *p; char *p;
@ -167,18 +167,21 @@ putname(char **buf, size_t buflen, const char *host)
p = *buf; p = *buf;
word = strtok(h, "."); word = strtok(h, ".");
size_t len_word = strlen(word);
while(word) { while(word) {
if (strlen(word) > 63 || strlen(word) > left) { if (len_word > 63 || len_word > left) {
free(h); free(h);
return -1; return -1;
} }
left -= (strlen(word) + 1); len_word = strlen(word);
*p++ = (char)strlen(word); left -= len_word + 1;
memcpy(p, word, strlen(word)); *p++ = (char)len_word;
p += strlen(word); memcpy(p, word, len_word);
p += len_word;
word = strtok(NULL, "."); word = strtok(NULL, ".");
len_word = strlen(word);
} }
*p++ = 0; *p++ = 0;