public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH] phy: Fix possible NULL pointer deference
@ 2020-05-20 17:05 Vignesh Raghavendra
  2020-05-25 17:59 ` Tom Rini
  0 siblings, 1 reply; 2+ messages in thread
From: Vignesh Raghavendra @ 2020-05-20 17:05 UTC (permalink / raw)
  To: u-boot

It is possible that users of generic_phy_*() APIs may pass a valid
struct phy pointer but phy->dev can be NULL, leading to NULL pointer
deference in phy_dev_ops().

So call generic_phy_valid() to verify that phy and phy->dev are both
valid.

Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
---
 drivers/phy/phy-uclass.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/phy/phy-uclass.c b/drivers/phy/phy-uclass.c
index 1fded5ebf42f..89510c5772e0 100644
--- a/drivers/phy/phy-uclass.c
+++ b/drivers/phy/phy-uclass.c
@@ -117,7 +117,7 @@ int generic_phy_init(struct phy *phy)
 {
 	struct phy_ops const *ops;
 
-	if (!phy)
+	if (!generic_phy_valid(phy))
 		return 0;
 	ops = phy_dev_ops(phy->dev);
 
@@ -128,7 +128,7 @@ int generic_phy_reset(struct phy *phy)
 {
 	struct phy_ops const *ops;
 
-	if (!phy)
+	if (!generic_phy_valid(phy))
 		return 0;
 	ops = phy_dev_ops(phy->dev);
 
@@ -139,7 +139,7 @@ int generic_phy_exit(struct phy *phy)
 {
 	struct phy_ops const *ops;
 
-	if (!phy)
+	if (!generic_phy_valid(phy))
 		return 0;
 	ops = phy_dev_ops(phy->dev);
 
@@ -150,7 +150,7 @@ int generic_phy_power_on(struct phy *phy)
 {
 	struct phy_ops const *ops;
 
-	if (!phy)
+	if (!generic_phy_valid(phy))
 		return 0;
 	ops = phy_dev_ops(phy->dev);
 
@@ -161,7 +161,7 @@ int generic_phy_power_off(struct phy *phy)
 {
 	struct phy_ops const *ops;
 
-	if (!phy)
+	if (!generic_phy_valid(phy))
 		return 0;
 	ops = phy_dev_ops(phy->dev);
 
-- 
2.26.2

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

* [PATCH] phy: Fix possible NULL pointer deference
  2020-05-20 17:05 [PATCH] phy: Fix possible NULL pointer deference Vignesh Raghavendra
@ 2020-05-25 17:59 ` Tom Rini
  0 siblings, 0 replies; 2+ messages in thread
From: Tom Rini @ 2020-05-25 17:59 UTC (permalink / raw)
  To: u-boot

On Wed, May 20, 2020 at 10:35:41PM +0530, Vignesh Raghavendra wrote:

> It is possible that users of generic_phy_*() APIs may pass a valid
> struct phy pointer but phy->dev can be NULL, leading to NULL pointer
> deference in phy_dev_ops().
> 
> So call generic_phy_valid() to verify that phy and phy->dev are both
> valid.
> 
> Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200525/2d973be0/attachment.sig>

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

end of thread, other threads:[~2020-05-25 17:59 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-20 17:05 [PATCH] phy: Fix possible NULL pointer deference Vignesh Raghavendra
2020-05-25 17:59 ` Tom Rini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox