All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] lib: logic_pio: Fix potential NULL pointer dereference
@ 2018-04-03 21:15 Gustavo A. R. Silva
  2018-04-04  8:54 ` John Garry
  2018-04-04 13:43 ` Bjorn Helgaas
  0 siblings, 2 replies; 4+ messages in thread
From: Gustavo A. R. Silva @ 2018-04-03 21:15 UTC (permalink / raw)
  To: Zhichang Yuan, Gabriele Paoloni, John Garry, Bjorn Helgaas,
	Andy Shevchenko
  Cc: linux-kernel, Gustavo A. R. Silva

new_range is being dereferenced before it is null checked, hence
there is a potential null pointer dereference.

Fix this by moving the pointer dereference after new_range has
been properly null checked.

Addresses-Coverity-ID: 1466163 ("Dereference before null check")
Fixes: 0a7198426259 ("lib: Add generic PIO mapping method")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
---
 lib/logic_pio.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/lib/logic_pio.c b/lib/logic_pio.c
index 29cedea..30dfdce 100644
--- a/lib/logic_pio.c
+++ b/lib/logic_pio.c
@@ -33,8 +33,8 @@ static DEFINE_MUTEX(io_range_mutex);
 int logic_pio_register_range(struct logic_pio_hwaddr *new_range)
 {
 	struct logic_pio_hwaddr *range;
-	resource_size_t start = new_range->hw_start;
-	resource_size_t end = new_range->hw_start + new_range->size;
+	resource_size_t start;
+	resource_size_t end;
 	resource_size_t mmio_sz = 0;
 	resource_size_t iio_sz = MMIO_UPPER_LIMIT;
 	int ret = 0;
@@ -42,6 +42,9 @@ int logic_pio_register_range(struct logic_pio_hwaddr *new_range)
 	if (!new_range || !new_range->fwnode || !new_range->size)
 		return -EINVAL;
 
+	start = new_range->hw_start;
+	end = new_range->hw_start + new_range->size;
+
 	mutex_lock(&io_range_mutex);
 	list_for_each_entry_rcu(range, &io_range_list, list) {
 		if (range->fwnode == new_range->fwnode) {
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread
* [PATCH] lib: logic_pio: Fix potential NULL pointer dereference
@ 2018-04-03 21:12 Gustavo A. R. Silva
  0 siblings, 0 replies; 4+ messages in thread
From: Gustavo A. R. Silva @ 2018-04-03 21:12 UTC (permalink / raw)
  To: Zhichang Yuan; +Cc: linux-kernel, Gustavo A. R. Silva

new_range is being dereferenced before it is null checked, hence
there is a potential null pointer dereference.

Fix this by moving the pointer dereference after new_range has
been properly null checked.

Addresses-Coverity-ID: 1466163 ("Dereference before null check")
Fixes: 0a7198426259 ("lib: Add generic PIO mapping method")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
---
 lib/logic_pio.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/lib/logic_pio.c b/lib/logic_pio.c
index 29cedea..30dfdce 100644
--- a/lib/logic_pio.c
+++ b/lib/logic_pio.c
@@ -33,8 +33,8 @@ static DEFINE_MUTEX(io_range_mutex);
 int logic_pio_register_range(struct logic_pio_hwaddr *new_range)
 {
 	struct logic_pio_hwaddr *range;
-	resource_size_t start = new_range->hw_start;
-	resource_size_t end = new_range->hw_start + new_range->size;
+	resource_size_t start;
+	resource_size_t end;
 	resource_size_t mmio_sz = 0;
 	resource_size_t iio_sz = MMIO_UPPER_LIMIT;
 	int ret = 0;
@@ -42,6 +42,9 @@ int logic_pio_register_range(struct logic_pio_hwaddr *new_range)
 	if (!new_range || !new_range->fwnode || !new_range->size)
 		return -EINVAL;
 
+	start = new_range->hw_start;
+	end = new_range->hw_start + new_range->size;
+
 	mutex_lock(&io_range_mutex);
 	list_for_each_entry_rcu(range, &io_range_list, list) {
 		if (range->fwnode == new_range->fwnode) {
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-04-04 13:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-03 21:15 [PATCH] lib: logic_pio: Fix potential NULL pointer dereference Gustavo A. R. Silva
2018-04-04  8:54 ` John Garry
2018-04-04 13:43 ` Bjorn Helgaas
  -- strict thread matches above, loose matches on Subject: below --
2018-04-03 21:12 Gustavo A. R. Silva

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.