All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] scsi: ufs: ufshcd: fix potential NULL pointer dereference in ufshcd_config_vreg
@ 2017-11-20 14:12 Gustavo A. R. Silva
  2017-11-21 19:16 ` Subhash Jadavani
  2017-11-22  4:01 ` Martin K. Petersen
  0 siblings, 2 replies; 4+ messages in thread
From: Gustavo A. R. Silva @ 2017-11-20 14:12 UTC (permalink / raw
  To: Vinayak Holikatti, James E.J. Bottomley, Martin K. Petersen
  Cc: linux-scsi, linux-kernel, Gustavo A. R. Silva

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

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

This issue was detected with the help of Coccinelle.

Fixes: aa4976130934 ("ufs: Add regulator enable support")
Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
---
 drivers/scsi/ufs/ufshcd.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 011c336..a355d98 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -6559,12 +6559,15 @@ static int ufshcd_config_vreg(struct device *dev,
 		struct ufs_vreg *vreg, bool on)
 {
 	int ret = 0;
-	struct regulator *reg = vreg->reg;
-	const char *name = vreg->name;
+	struct regulator *reg;
+	const char *name;
 	int min_uV, uA_load;
 
 	BUG_ON(!vreg);
 
+	reg = vreg->reg;
+	name = vreg->name;
+
 	if (regulator_count_voltages(reg) > 0) {
 		min_uV = on ? vreg->min_uV : 0;
 		ret = regulator_set_voltage(reg, min_uV, vreg->max_uV);
-- 
2.7.4

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

* Re: [PATCH] scsi: ufs: ufshcd: fix potential NULL pointer dereference in ufshcd_config_vreg
  2017-11-20 14:12 [PATCH] scsi: ufs: ufshcd: fix potential NULL pointer dereference in ufshcd_config_vreg Gustavo A. R. Silva
@ 2017-11-21 19:16 ` Subhash Jadavani
  2017-11-22  4:01 ` Martin K. Petersen
  1 sibling, 0 replies; 4+ messages in thread
From: Subhash Jadavani @ 2017-11-21 19:16 UTC (permalink / raw
  To: Gustavo A. R. Silva
  Cc: Vinayak Holikatti, James E.J. Bottomley, Martin K. Petersen,
	linux-scsi, linux-kernel, linux-scsi-owner

On 2017-11-20 06:12, Gustavo A. R. Silva wrote:
> _vreg_ is being dereferenced before it is null checked, hence there is 
> a
> potential null pointer dereference.
> 
> Fix this by moving the pointer dereference after _vreg_ has been null
> checked.
> 
> This issue was detected with the help of Coccinelle.
> 
> Fixes: aa4976130934 ("ufs: Add regulator enable support")
> Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
> ---
>  drivers/scsi/ufs/ufshcd.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
> index 011c336..a355d98 100644
> --- a/drivers/scsi/ufs/ufshcd.c
> +++ b/drivers/scsi/ufs/ufshcd.c
> @@ -6559,12 +6559,15 @@ static int ufshcd_config_vreg(struct device 
> *dev,
>  		struct ufs_vreg *vreg, bool on)
>  {
>  	int ret = 0;
> -	struct regulator *reg = vreg->reg;
> -	const char *name = vreg->name;
> +	struct regulator *reg;
> +	const char *name;
>  	int min_uV, uA_load;
> 
>  	BUG_ON(!vreg);
> 
> +	reg = vreg->reg;
> +	name = vreg->name;
> +
>  	if (regulator_count_voltages(reg) > 0) {
>  		min_uV = on ? vreg->min_uV : 0;
>  		ret = regulator_set_voltage(reg, min_uV, vreg->max_uV);

Looks good to me.
Reviewed-by: Subhash Jadavani <subhashj@codeaurora.org>


-- 
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

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

* Re: [PATCH] scsi: ufs: ufshcd: fix potential NULL pointer dereference in ufshcd_config_vreg
  2017-11-20 14:12 [PATCH] scsi: ufs: ufshcd: fix potential NULL pointer dereference in ufshcd_config_vreg Gustavo A. R. Silva
  2017-11-21 19:16 ` Subhash Jadavani
@ 2017-11-22  4:01 ` Martin K. Petersen
  2017-11-22 14:18   ` Gustavo A. R. Silva
  1 sibling, 1 reply; 4+ messages in thread
From: Martin K. Petersen @ 2017-11-22  4:01 UTC (permalink / raw
  To: Gustavo A. R. Silva
  Cc: Vinayak Holikatti, James E.J. Bottomley, Martin K. Petersen,
	linux-scsi, linux-kernel


Gustavo A.,

> _vreg_ is being dereferenced before it is null checked, hence there is a
> potential null pointer dereference.
>
> Fix this by moving the pointer dereference after _vreg_ has been null
> checked.

Applied to 4.15/scsi-fixes, thank you!

-- 
Martin K. Petersen	Oracle Linux Engineering

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

* Re: [PATCH] scsi: ufs: ufshcd: fix potential NULL pointer dereference in ufshcd_config_vreg
  2017-11-22  4:01 ` Martin K. Petersen
@ 2017-11-22 14:18   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 4+ messages in thread
From: Gustavo A. R. Silva @ 2017-11-22 14:18 UTC (permalink / raw
  To: Martin K. Petersen
  Cc: Vinayak Holikatti, James E.J. Bottomley, linux-scsi, linux-kernel


On 11/21/2017 10:01 PM, Martin K. Petersen wrote:
> Gustavo A.,
>
>> _vreg_ is being dereferenced before it is null checked, hence there is a
>> potential null pointer dereference.
>>
>> Fix this by moving the pointer dereference after _vreg_ has been null
>> checked.
> Applied to 4.15/scsi-fixes, thank you!
>

Glad to help. :)

Thanks
--
Gustavo A. R. Silva

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

end of thread, other threads:[~2017-11-22 14:18 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-11-20 14:12 [PATCH] scsi: ufs: ufshcd: fix potential NULL pointer dereference in ufshcd_config_vreg Gustavo A. R. Silva
2017-11-21 19:16 ` Subhash Jadavani
2017-11-22  4:01 ` Martin K. Petersen
2017-11-22 14:18   ` 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.