protocol-caps: use hash algorithm from passed-in repository

In `send_info()`, we pass in a repository but then use `get_oid_hex()`
to parse passed-in object IDs, which implicitly uses `the_repository`.
Fix this by using the hash algorithm from the passed-in repository
instead.

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-14 08:50:47 +02:00 committed by Junio C Hamano
parent f2c32a66f5
commit 58650befd9

View File

@ -7,6 +7,7 @@
#include "hex.h"
#include "object.h"
#include "object-store-ll.h"
#include "repository.h"
#include "string-list.h"
#include "strbuf.h"
@ -52,7 +53,7 @@ static void send_info(struct repository *r, struct packet_writer *writer,
struct object_id oid;
unsigned long object_size;
if (get_oid_hex(oid_str, &oid) < 0) {
if (get_oid_hex_algop(oid_str, &oid, r->hash_algo) < 0) {
packet_writer_error(
writer,
"object-info: protocol error, expected to get oid, not '%s'",