2010-03-15 14:42:48

by Stefan Richter

[permalink] [raw]
Subject: New compiler warning in 2.6.34-rc1: 'start_ext.ee_block' may be used uninitialized

Hi,

I saw the following scroll by during kernel compilation:

fs/ext4/move_extent.c: In function 'mext_leaf_block':

fs/ext4/move_extent.c:478: warning: 'start_ext.ee_block' may be used
uninitialized in this function


Is it real? It seems that the initial start_ext.ee_len = 0 guards
against accidental use of an uninitialized start_ext.ee_block, but maybe
I missed something.

The message is from gcc (Gentoo 4.3.4 p1.0, pie-10.1.5) 4.3.4 here.
--
Stefan Richter
-=====-==-=- --== -====
http://arcgraph.de/sr/


2010-03-15 15:41:50

by Theodore Ts'o

[permalink] [raw]
Subject: Re: New compiler warning in 2.6.34-rc1: 'start_ext.ee_block' may be used uninitialized

On Mon, Mar 15, 2010 at 03:42:39PM +0100, Stefan Richter wrote:
> Hi,
>
> I saw the following scroll by during kernel compilation:
>
> fs/ext4/move_extent.c: In function 'mext_leaf_block':
>
> fs/ext4/move_extent.c:478: warning: 'start_ext.ee_block' may be used
> uninitialized in this function
>
> Is it real? It seems that the initial start_ext.ee_len = 0 guards
> against accidental use of an uninitialized start_ext.ee_block, but maybe
> I missed something.

>From my review of the code the fact that ee_len is set to zero should
make this be safe, but my preference would be to clear
start_ext.ee_block as well to prevent the warning from coming up
(since false positives clutter up warnings and might cause us to miss
a warning which isn't so benign).

Akira-san, do you agree that it is currently is safe?

- Ted

2010-03-25 02:43:38

by Akira Fujita

[permalink] [raw]
Subject: Re: New compiler warning in 2.6.34-rc1: 'start_ext.ee_block' may be used uninitialized


(2010/03/16 0:41), [email protected] wrote:
> On Mon, Mar 15, 2010 at 03:42:39PM +0100, Stefan Richter wrote:
>> Hi,
>>
>> I saw the following scroll by during kernel compilation:
>>
>> fs/ext4/move_extent.c: In function 'mext_leaf_block':
>>
>> fs/ext4/move_extent.c:478: warning: 'start_ext.ee_block' may be used
>> uninitialized in this function
>>
>> Is it real? It seems that the initial start_ext.ee_len = 0 guards
>> against accidental use of an uninitialized start_ext.ee_block, but maybe
>> I missed something.
>
>> From my review of the code the fact that ee_len is set to zero should
> make this be safe, but my preference would be to clear
> start_ext.ee_block as well to prevent the warning from coming up
> (since false positives clutter up warnings and might cause us to miss
> a warning which isn't so benign).
>
> Akira-san, do you agree that it is currently is safe?
>

Sorry for the late reply.

The patch (gcc-wall-cleanup-in-move_extent.c) in ext4 patch queue
looks good to me.

Thanks,
Akira Fujita