Re: [PATCH v10 7/8] transport: add client support for object-info

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jan 31, 2025 at 9:08 PM Jeff King <peff@xxxxxxxx> wrote:
>
> On Mon, Jan 13, 2025 at 09:14:59PM -0500, Eric Ju wrote:
>
> > @@ -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_info
>
> Coverity 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;
}





[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux