[PATCH 1/5] driver core: Add simple parameter checks for APIs device_(for_each|find)_child()

Zijun Hu posted 5 patches 1 year, 6 months ago
There is a newer version of this series
[PATCH 1/5] driver core: Add simple parameter checks for APIs device_(for_each|find)_child()
Posted by Zijun Hu 1 year, 6 months ago
From: Zijun Hu <quic_zijuhu@quicinc.com>

Add simple parameter checks for APIs device_(for_each|find)_child() and
device_for_each_child_reverse().

Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
---
 drivers/base/core.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/base/core.c b/drivers/base/core.c
index 1688e76cb64b..b1dd8c5590dc 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -4004,7 +4004,7 @@ int device_for_each_child(struct device *parent, void *data,
 	struct device *child;
 	int error = 0;
 
-	if (!parent->p)
+	if (!parent || !parent->p)
 		return 0;
 
 	klist_iter_init(&parent->p->klist_children, &i);
@@ -4034,7 +4034,7 @@ int device_for_each_child_reverse(struct device *parent, void *data,
 	struct device *child;
 	int error = 0;
 
-	if (!parent->p)
+	if (!parent || !parent->p)
 		return 0;
 
 	klist_iter_init(&parent->p->klist_children, &i);
@@ -4068,7 +4068,7 @@ struct device *device_find_child(struct device *parent, void *data,
 	struct klist_iter i;
 	struct device *child;
 
-	if (!parent)
+	if (!parent || !parent->p)
 		return NULL;
 
 	klist_iter_init(&parent->p->klist_children, &i);

-- 
2.34.1
Re: [PATCH 1/5] driver core: Add simple parameter checks for APIs device_(for_each|find)_child()
Posted by Greg Kroah-Hartman 1 year, 6 months ago
On Sun, Aug 11, 2024 at 08:18:07AM +0800, Zijun Hu wrote:
> From: Zijun Hu <quic_zijuhu@quicinc.com>
> 
> Add simple parameter checks for APIs device_(for_each|find)_child() and
> device_for_each_child_reverse().

Ok, but why?  Who is calling this with NULL as a parent pointer?

Remember, changelog text describes _why_ not just _what_ you are doing.

thanks,

greg k-h
Re: [PATCH 1/5] driver core: Add simple parameter checks for APIs device_(for_each|find)_child()
Posted by quic_zijuhu 1 year, 6 months ago
On 8/13/2024 5:44 PM, Greg Kroah-Hartman wrote:
> On Sun, Aug 11, 2024 at 08:18:07AM +0800, Zijun Hu wrote:
>> From: Zijun Hu <quic_zijuhu@quicinc.com>
>>
>> Add simple parameter checks for APIs device_(for_each|find)_child() and
>> device_for_each_child_reverse().
> 
> Ok, but why?  Who is calling this with NULL as a parent pointer?
> 
> Remember, changelog text describes _why_ not just _what_ you are doing.
> 

For question why ?

The main purpose of this change is to make these APIs have *CONSISTENT*
parameter checking (!parent || !parent->p)

currently, 2 of them have checking (!parent->p), the other have checking
(!parent), the are INCONSISTENT.


For question who ?
device_find_child() have had such checking (!parent), that maybe mean
original author has concern that parent may be NULL.

Moreover, these are core driver APIs, it is worthy checking input
parameter strictly.


will correct commit message with v2.

> thanks,
> 
> greg k-h
Re: [PATCH 1/5] driver core: Add simple parameter checks for APIs device_(for_each|find)_child()
Posted by Greg Kroah-Hartman 1 year, 6 months ago
On Tue, Aug 13, 2024 at 06:00:30PM +0800, quic_zijuhu wrote:
> On 8/13/2024 5:44 PM, Greg Kroah-Hartman wrote:
> > On Sun, Aug 11, 2024 at 08:18:07AM +0800, Zijun Hu wrote:
> >> From: Zijun Hu <quic_zijuhu@quicinc.com>
> >>
> >> Add simple parameter checks for APIs device_(for_each|find)_child() and
> >> device_for_each_child_reverse().
> > 
> > Ok, but why?  Who is calling this with NULL as a parent pointer?
> > 
> > Remember, changelog text describes _why_ not just _what_ you are doing.
> > 
> 
> For question why ?
> 
> The main purpose of this change is to make these APIs have *CONSISTENT*
> parameter checking (!parent || !parent->p)
> 
> currently, 2 of them have checking (!parent->p), the other have checking
> (!parent), the are INCONSISTENT.
> 
> 
> For question who ?
> device_find_child() have had such checking (!parent), that maybe mean
> original author has concern that parent may be NULL.
> 
> Moreover, these are core driver APIs, it is worthy checking input
> parameter strictly.

Not always, no, don't check for things that will not happen, otherwise
you are checking for no reason at all.

thanks,

greg k-h