Re: [PATCH] src/swapon.c: initiate p to NULL

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



On Thu, Jan 28, 2021 at 02:50:10PM +0800, Sun Ke wrote:
> when run make, show:
> swapon.c:135:3: warning: 'p' may be used uninitialized in this function
> [-Wmaybe-uninitialized]
>    memcpy(p, buf, BUF_SIZE);
>       ^~~~~~~~~~~~~~~~~~~~~~~~
> fix it.

If you don't have a situation to prove this's a real bug, I guess the gcc might
think the 'p' can be used uninitialized at here when verb is TEST_MWRITE_BEFORE_AND_MWRITE_AFTER:

        case TEST_MWRITE_BEFORE_AND_MWRITE_AFTER:
                memcpy(p, buf, BUF_SIZE);
                break;

But from the code logic, if verb is TEST_MWRITE_BEFORE_AND_MWRITE_AFTER, the 'p'
will be initialized by:

        switch (verb) {
        case TEST_MWRITE_BEFORE_AND_MWRITE_AFTER:
        case TEST_MWRITE_BEFORE:
                p = mmap(NULL, BUF_SIZE, PROT_WRITE | PROT_READ, MAP_SHARED,


So I think this's a fake uninitialized warning (Maybe I'm wrong. But if I'm right,
better to specify that in commit log).

Anyway, I personally don't object to initialize a pointer to NULL at beginning,
and make a build warning disappear. Leave the decision to maintainer :)


Thanks,
Zorro

> 
> Signed-off-by: Sun Ke <sunke32@xxxxxxxxxx>
> ---
>  src/swapon.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/swapon.c b/src/swapon.c
> index afaed405..fe8949a3 100644
> --- a/src/swapon.c
> +++ b/src/swapon.c
> @@ -41,7 +41,7 @@ int main(int argc, char **argv)
>  		.sa_handler	= handle_signal,
>  	};
>  	enum verbs verb = TEST_SWAPON;
> -	void *p;
> +	void *p = NULL;
>  	ssize_t sz;
>  	int fd = -1;
>  	int ret, c;
> -- 
> 2.13.6
> 




[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux