summaryrefslogtreecommitdiff
path: root/drivers/of
diff options
context:
space:
mode:
authorAlexander Stein <alexander.stein@ew.tq-group.com>2023-02-07 14:05:30 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-02-09 14:13:55 +0300
commit2295bed9bebe8d1eef276194fed5b5fbe89c5363 (patch)
tree2dd503d47e0cf9f7971c51eacbff2cc08591a8ea /drivers/of
parent553bd29700145e1849698985e9800f14e967da49 (diff)
downloadlinux-2295bed9bebe8d1eef276194fed5b5fbe89c5363.tar.xz
of: device: Do not ignore error code in of_device_uevent_modalias
of_device_get_modalias might return an error code, propagate that one. Otherwise the negative, signed integer is propagated to unsigned integer for the comparison resulting in a huge 'sl' size. Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> Reviewed-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20230207110531.1060252-3-alexander.stein@ew.tq-group.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/of')
-rw-r--r--drivers/of/device.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/of/device.c b/drivers/of/device.c
index 3caaaf107076..8271793ef379 100644
--- a/drivers/of/device.c
+++ b/drivers/of/device.c
@@ -385,6 +385,8 @@ int of_device_uevent_modalias(struct device *dev, struct kobj_uevent_env *env)
sl = of_device_get_modalias(dev, &env->buf[env->buflen-1],
sizeof(env->buf) - env->buflen);
+ if (sl < 0)
+ return sl;
if (sl >= (sizeof(env->buf) - env->buflen))
return -ENOMEM;
env->buflen += sl;