]> git.ipfire.org Git - thirdparty/git.git/commitdiff
git-zlib: cast away potential constness of `next_in` pointer
authorPatrick Steinhardt <ps@pks.im>
Tue, 28 Jan 2025 08:41:33 +0000 (09:41 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 28 Jan 2025 21:03:23 +0000 (13:03 -0800)
The `struct git_zstream::next_in` variable points to the input data and
is used in combination with `struct z_stream::next_in`. While that
latter field is not marked as a constant in zlib, it is marked as such
in zlib-ng. This causes a couple of compiler errors when we try to
assign these fields to one another due to mismatching constness.

Fix the issue by casting away the potential constness of `next_in`.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-zlib.c

index 2e973320c232438cce7c83e25cc60a6b773670fc..651dd9e07cd1bfbc747eba2ecf29185cfbbdcc90 100644 (file)
@@ -59,7 +59,8 @@ static void zlib_post_call(git_zstream *s)
 
        s->total_out = s->z.total_out;
        s->total_in = s->z.total_in;
-       s->next_in = s->z.next_in;
+       /* zlib-ng marks `next_in` as `const`, so we have to cast it away. */
+       s->next_in = (unsigned char *) s->z.next_in;
        s->next_out = s->z.next_out;
        s->avail_in -= bytes_consumed;
        s->avail_out -= bytes_produced;