2020-12-30 06:47:03

by Abaci Team

[permalink] [raw]
Subject: [PATCH] 9p: fix: Uninitialized variable p.

The pointer p is being used but it isn't being initialized,
need to assign a NULL to it.

Signed-off-by: YANG LI <[email protected]>
Reported-by: Abaci <[email protected]>
---
net/9p/trans_virtio.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c
index 93f2f86..d4d635f 100644
--- a/net/9p/trans_virtio.c
+++ b/net/9p/trans_virtio.c
@@ -342,7 +342,7 @@ static int p9_get_mapped_pages(struct virtio_chan *chan,
/* kernel buffer, no need to pin pages */
int index;
size_t len;
- void *p;
+ void *p = NULL;

/* we'd already checked that it's non-empty */
while (1) {
--
1.8.3.1


2020-12-30 07:19:59

by Dominique Martinet

[permalink] [raw]
Subject: Re: [PATCH] 9p: fix: Uninitialized variable p.

YANG LI wrote on Wed, Dec 30, 2020:
> The pointer p is being used but it isn't being initialized,
> need to assign a NULL to it.

My understanding is p has to be initialized: the only way out of the
while(1) loop below sets it.


I don't mind fixing false positive warnings as it makes maintenance
easier for everyone, but:

1/ the commit message needs to reflect that and at least name which
tool had a problem with it. I'm tempted to think this case is common
enough that the tool ought to be fixed instead...

2/ the code needs to work in the p=NULL case if you set it that way
(right now, it doesn't, so in the event the code changes in the future
and there really comes a way to skip initialization this change would
actually hinder bug detection -- it'd need to add a p == NULL check
below, which is going to be useless code, but hopefully compilers will
optimize it away)


Thanks,
--
Dominique