Re: [PATCH v10 7/8] transport: add client support for object-info
From: Peijian Ju <hidden>
Date: 2025-02-20 22:52:53
On Fri, Jan 31, 2025 at 9:08 PM Jeff King [off-list ref] wrote:
On Mon, Jan 13, 2025 at 09:14:59PM -0500, Eric Ju wrote:quoted
@@ -464,8 +465,33 @@ static int fetch_refs_via_pack(struct transport *transport, args.server_options = transport->server_options; args.negotiation_tips = data->options.negotiation_tips; args.reject_shallow_remote = transport->smart_options->reject_shallow; + args.object_info = transport->smart_options->object_info; + + if (transport->smart_options && transport->smart_options->object_infoCoverity complains about the check for a NULL transport->smart_options here. If it's NULL we'd already have segfaulted a few lines above when we look at the reject_shallow flag. Not sure if that's an existing bug in the earlier code or not. ;) Your extra check can't hurt anything, in the sense that it's just being overly defensive, but it does make puzzling out the expected value of smart_options harder. -Peff
Thank you Jeff. Sorry for the late response.
I will remove the extra check. transport->smart_options will not be
NULL when it reaches
`args.reject_shallow_remote = transport->smart_options->reject_shallow;`
The call sequence is like this
get_remote_info() in cat-file.c ==> transport_fetch_refs() ==>
transport->vtable->fetch_refs ==> fetch_refs_via_pack()
in get_remote_info(), we already have a check for NULL:
if (gtransport->smart_options) {
...
} else {
retval = -1;
}