http: do not assign string constant to non-const field

In `write_accept_language()`, we put all acceptable languages into an
array. While all entries in that array are allocated strings, the final
entry in that array is a string constant. This is fine because we
explicitly skip over the last entry when freeing the array, but will
cause warnings once we enable `-Wwrite-strings`.

Adapt the code to also allocate the final entry.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt 2024-06-07 08:38:49 +02:00 committed by Junio C Hamano
parent e7b40195ae
commit 8d3a7ce441

5
http.c
View file

@ -1974,7 +1974,7 @@ static void write_accept_language(struct strbuf *buf)
/* add '*' */
REALLOC_ARRAY(language_tags, num_langs + 1);
language_tags[num_langs++] = "*"; /* it's OK; this won't be freed */
language_tags[num_langs++] = xstrdup("*");
/* compute decimal_places */
for (max_q = 1, decimal_places = 0;
@ -2004,8 +2004,7 @@ static void write_accept_language(struct strbuf *buf)
}
}
/* free language tags -- last one is a static '*' */
for (i = 0; i < num_langs - 1; i++)
for (i = 0; i < num_langs; i++)
free(language_tags[i]);
free(language_tags);
}