From 49b0482ed4a24483de8627b246ae9068bbf405e8 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Mon, 8 Nov 2021 11:44:47 +0100 Subject: [PATCH] CLEANUP: chunk: remove misleading chunk_strncat() function This function claims to perform an strncat()-like operation but it does not, it always copies the indicated number of bytes, regardless of the presence of a NUL character (what is currently done by chunk_memcat()). Let's remove it and explicitly replace it with chunk_memcat(). --- include/haproxy/chunk.h | 8 -------- src/cache.c | 8 ++++---- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/include/haproxy/chunk.h b/include/haproxy/chunk.h index 05fd161217..b5d515170e 100644 --- a/include/haproxy/chunk.h +++ b/include/haproxy/chunk.h @@ -203,14 +203,6 @@ static inline int chunk_strcat(struct buffer *chk, const char *str) return 1; } -/* appends characters from str after . - * Returns 0 in case of failure. - */ -static inline int chunk_strncat(struct buffer *chk, const char *str, int nb) -{ - return chunk_memcat(chk, str, nb); -} - /* Adds a trailing zero to the current chunk and returns the pointer to the * following part. The purpose is to be able to use a chunk as a series of * short independent strings with chunk_* functions, which do not need to be diff --git a/src/cache.c b/src/cache.c index ee42947c12..9c108ae537 100644 --- a/src/cache.c +++ b/src/cache.c @@ -779,8 +779,8 @@ int http_calc_maxage(struct stream *s, struct cache *cache, int *true_maxage) if (value) { struct buffer *chk = get_trash_chunk(); - chunk_strncat(chk, value, ctx.value.len - 8 + 1); - chunk_strncat(chk, "", 1); + chunk_memcat(chk, value, ctx.value.len - 8 + 1); + chunk_memcat(chk, "", 1); offset = (*chk->area == '"') ? 1 : 0; smaxage = strtol(chk->area + offset, &endptr, 10); if (unlikely(smaxage < 0 || endptr == chk->area)) @@ -791,8 +791,8 @@ int http_calc_maxage(struct stream *s, struct cache *cache, int *true_maxage) if (value) { struct buffer *chk = get_trash_chunk(); - chunk_strncat(chk, value, ctx.value.len - 7 + 1); - chunk_strncat(chk, "", 1); + chunk_memcat(chk, value, ctx.value.len - 7 + 1); + chunk_memcat(chk, "", 1); offset = (*chk->area == '"') ? 1 : 0; maxage = strtol(chk->area + offset, &endptr, 10); if (unlikely(maxage < 0 || endptr == chk->area)) -- 2.39.5