Messages in this thread Patch in this message | | | From | Axel Lin <> | Date | Sun, 27 Nov 2011 19:56:20 +0800 | Subject | Re: [PATCH] regulator: Avoid potential NULL dereference in reg_fixed_voltage_probe() |
| |
2011/11/27 Mark Brown <broonie@opensource.wolfsonmicro.com>: > On Sun, Nov 27, 2011 at 10:13:50AM +0800, Axel Lin wrote: > >> - if (pdev->dev.of_node) >> + if (pdev->dev.of_node) { >> config = of_get_fixed_voltage_config(&pdev->dev); >> + if (!config) >> + return -ENOMEM; >> + } > > Looking at this I'm thinking it's better to just drop the check for > of_node entirely and just let of_get_fixed_voltage_config() fail to find > what it needs. > In the case of pdev->dev.of_node == NULL, config points to pdev->dev.platform_data.
Or do you prefer change it this way:
--- a/drivers/regulator/fixed.c +++ b/drivers/regulator/fixed.c @@ -163,12 +163,17 @@ static struct regulator_ops fixed_voltage_ops = {
static int __devinit reg_fixed_voltage_probe(struct platform_device *pdev) { - struct fixed_voltage_config *config = pdev->dev.platform_data; + struct fixed_voltage_config *config; struct fixed_voltage_data *drvdata; int ret;
if (pdev->dev.of_node) config = of_get_fixed_voltage_config(&pdev->dev); + else + config = pdev->dev.platform_data; + + if (!config) + return -ENOMEM;
drvdata = kzalloc(sizeof(struct fixed_voltage_data), GFP_KERNEL); if (drvdata == NULL) { -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |