pkt-line: add size parameter to packet_length()
commit3e81b896f769dfdb479363acb00bdc6b076cfd55
authorRené Scharfe <l.s.r@web.de>
Fri, 7 Jul 2023 21:47:55 +0000 (7 23:47 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 7 Jul 2023 22:30:16 +0000 (7 15:30 -0700)
tree97313f778c6f5c790f27df7f467a3c2a6c50a209
parentfb7d80edcae482f4fa5d4be0227dc3054734e5f3
pkt-line: add size parameter to packet_length()

hex2chr() takes care not to run over the end of a NUL-terminated string.
It's used in packet_length(), but both callers of that function pass a
four-byte buffer, making NUL-checks unnecessary.  packet_length() could
accidentally be used with a pointer to a buffer of unknown size at new
call-sites, though, and the compiler wouldn't complain.

Add a size parameter plus check, and remove the NUL-checks by calling
hexval() directly.  This trades three NUL checks against one size check
and the ability to report the use of a short buffer at runtime.

If any of the four bytes is NUL or -- more generally -- not a
hexadecimal digit, then packet_length() still returns a negative value.

Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
pkt-line.c
pkt-line.h
remote-curl.c