UPSTREAM: gnss: fix potential error pointer dereference
The gnss_allocate_device() function returns a mix of NULL and error
pointers on error. It should only return one or the other. Since the
callers both check for NULL, I've modified it to return NULL on error.
Fixes: 2b6a44035143 ("gnss: add GNSS receiver subsystem")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit d9995a0fab40af333b08902ad43a387843ca0e17)
Bug: 146062677
Change-Id: I0d555d6459ab76a8c4eb8208a5bf469d04a16121
Signed-off-by: Alistair Delva <adelva@google.com>
This commit is contained in:
committed by
Alistair Delva
parent
38361f5185
commit
4743b4fd4a
@@ -235,7 +235,7 @@ struct gnss_device *gnss_allocate_device(struct device *parent)
|
||||
id = ida_simple_get(&gnss_minors, 0, GNSS_MINORS, GFP_KERNEL);
|
||||
if (id < 0) {
|
||||
kfree(gdev);
|
||||
return ERR_PTR(id);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
gdev->id = id;
|
||||
@@ -270,7 +270,7 @@ struct gnss_device *gnss_allocate_device(struct device *parent)
|
||||
err_put_device:
|
||||
put_device(dev);
|
||||
|
||||
return ERR_PTR(-ENOMEM);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(gnss_allocate_device);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user