Re: [PATCH 2/2] object.c: initialize automatic variable in lookup_object()

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

 



On Fri, Apr 09, 2021 at 10:07:28AM +0200, Ævar Arnfjörð Bjarmason wrote:

> Initialize a "struct object obj*" variable to NULL explicitly and
> return it instead of leaving it uninitialized until the "while"
> loop.
> 
> There was no bug here, it's just less confusing when debugging if the
> "obj" is either NULL or a valid object, not some random invalid
> pointer.
>
> [...]
>
>  struct object *lookup_object(struct repository *r, const struct object_id *oid)
>  {
>  	unsigned int i, first;
> -	struct object *obj;
> +	struct object *obj = NULL;
>  
>  	if (!r->parsed_objects->obj_hash)
> -		return NULL;
> +		return obj;

I actually prefer the original style (where any "can we bail early"
checks just explicitly return NULL, rather than making you check to see
that obj is NULL). But it's pretty subjective, and I don't feel
strongly.

>  	first = i = hash_obj(oid, r->parsed_objects->obj_hash_size);
>  	while ((obj = r->parsed_objects->obj_hash[i]) != NULL) {

The important thing is that "obj" is not used uninitialized, which it
isn't (before or after).

-Peff



[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