Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Sep 2020 14:24:59 +0200
From:      Michal Meloun <meloun.michal@gmail.com>
To:        Andriy Gapon <avg@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r365445 - head/sys/cam/mmc
Message-ID:  <67be7fa5-30dd-b7ee-1076-9c29195d83d3@gmail.com>
In-Reply-To: <34826ee7-12a9-d309-1fee-cd2e95744603@FreeBSD.org>
References:  <202009080546.0885kAgk006783@repo.freebsd.org> <34826ee7-12a9-d309-1fee-cd2e95744603@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help


On 08.09.2020 9:10, Andriy Gapon wrote:
> On 08/09/2020 08:46, Andriy Gapon wrote:
>> Author: avg
>> Date: Tue Sep  8 05:46:10 2020
>> New Revision: 365445
>> URL: https://svnweb.freebsd.org/changeset/base/365445
>>
>> Log:
>>   mmc_da: make sure that part_index is not used uninitialized in sddastart
> [snip]
>> Modified: head/sys/cam/mmc/mmc_da.c
>> ==============================================================================
>> --- head/sys/cam/mmc/mmc_da.c	Tue Sep  8 04:44:37 2020	(r365444)
>> +++ head/sys/cam/mmc/mmc_da.c	Tue Sep  8 05:46:10 2020	(r365445)
>> @@ -1808,6 +1808,7 @@ sddastart(struct cam_periph *periph, union ccb *start_
>>  	}
>>  
>>  	/* Find partition that has outstanding commands.  Prefer current partition. */
>> +	part_index = softc->part_curr;
>>  	part = softc->part[softc->part_curr];
>>  	bp = bioq_first(&part->bio_queue);
>>  	if (bp == NULL) {
>>
> 
> One thing that concerns me is that it was obvious (to a human) that part_index
> could be used uninitialized if bp was not NULL.
> Yet, there was no warning or error from the compiler when I built that code for
> armv7.
> 
> I wonder if we disable some relevant warnings for that architecture.
> Or if the compiler (clang 11) could not figure that out.
> 
Hmm, for this in kernel code :
int foo(void);
int foo(void)
{
 int rv;

 return (rv);
}

warning is reported for both armv7 and arm64 for native or cross compile.

It seems that clang11 doesn't emit warnings only for more complicated
cases...

I writing this because i just found another usage of uninitialized
variable, in this case in much more complicated abort_handler() function
in arm/trap-v6.c again without warning emitted.
Michal



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?67be7fa5-30dd-b7ee-1076-9c29195d83d3>