lkml.org 
[lkml]   [2015]   [Nov]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/2] drivers/rtc/rtc-ds1685.c: don't try to micromanage sysfs output size
On 24/11/2015 at 14:51:24 +0100, Rasmus Villemoes wrote :
> ...and don't do it wrong.
>
> "not ok or N/A" has length 13. Add the trailing newline, and the
> snprintf return value will be 14. However, we lied to snprintf and
> told it that only 13 bytes were available. Hence snprintf has only
> written "not ok or N/" and a trailing '\0' to the buffer. Next we
> continue lying, this time to the upper sysfs layer, claiming that we
> wrote 14 meaningful bytes to the buffer. That'll make the upper layer
> copy "not ok or N/" plus two nul bytes to user space (one nul byte
> from snprintf, the other since sysfs takes care to clear the buffer
> before giving it to the ->show method).
>
> In the other cases, the claimed buffer size is closer to sufficient,
> but we'll still get a nul byte instead of a newline written to user
> space. There's absolutely no reason to try to predict the output
> size, and there's plenty of room in the buffer, so just use sprintf.
>
> Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
> ---
> drivers/rtc/rtc-ds1685.c | 12 +++++-------
> 1 file changed, 5 insertions(+), 7 deletions(-)
>
Applied, thanks.

--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com


\
 
 \ /
  Last update: 2015-11-30 20:21    [W:3.503 / U:0.232 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site