]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
of: fix of_device_get_modalias returned length when truncating buffers
authorRob Herring <robh@kernel.org>
Mon, 16 Jan 2017 20:28:39 +0000 (14:28 -0600)
committerSasha Levin <alexander.levin@microsoft.com>
Wed, 23 May 2018 01:33:43 +0000 (21:33 -0400)
[ Upstream commit bcf54d5385abaea9c8026aae6f4eeb348671a52d ]

If the length of the modalias is greater than the buffer size, then the
modalias is truncated. However the untruncated length is returned which
will cause an error. Fix this to return the truncated length. If an error
in the case was desired, then then we should just return -ENOMEM.

The reality is no device will ever have 4KB of compatible strings to hit
this case.

Signed-off-by: Rob Herring <robh@kernel.org>
Cc: Frank Rowand <frowand.list@gmail.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
drivers/of/device.c

index 493b21bd1199adf609586751ff853ddf445747d0..6601cc62a9901f7e69d8e87473621f83990e7488 100644 (file)
@@ -210,7 +210,7 @@ ssize_t of_device_get_modalias(struct device *dev, char *str, ssize_t len)
                        str[i] = '_';
        }
 
-       return tsize;
+       return repend;
 }
 EXPORT_SYMBOL_GPL(of_device_get_modalias);