lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <45F92E97.7030207@boichat.ch>
Date:	Thu, 15 Mar 2007 19:31:35 +0800
From:	Nicolas Boichat <nicolas@...chat.ch>
To:	Cong WANG <xiyou.wangcong@...il.com>
CC:	linux-kernel@...r.kernel.org
Subject: Re: [RFC][PATCH] Apple SMC driver (hardware monitoring and control)

Hello,

Cong WANG wrote:
> 2007/3/14, Cong WANG wrote:
>> I am sorry. I forgot to CC to the list.
>>
>> 2007/3/14, Nicolas Boichat wrote:
>> > Hello,
>> >
>>
>> <snip>
>>
>> > +static ssize_t applesmc_show_fan_manual(struct device *dev, char *buf,
>> > +                                                               int
>> offset)
>> > +{
>> > +       int ret;
>> > +       u16 manual = 0;
>> > +       u8 buffer[2];
>> > +
>> > +       down(&applesmc_sem);
>> > +
>> > +       ret = applesmc_read_key(FANS_MANUAL, buffer, 2);
>> > +       manual = ((buffer[0] << 8 | buffer[1]) >> offset) & 0x01;
>> > +
>> > +       up(&applesmc_sem);
>> > +       if (ret)
>> > +               return ret;
>> > +       else
>> > +               return sprintf(buf, "%d\n", manual);
>> > +}
>> > +
>>
>> I doubt about your last 'sprintf'. Your 'buf' just has only two 'u8's,
>> which maybe only has two bytes, and '\n' already consumes one. So only
>> one byte is left for the decimal vaule of 'manual'. Even it is just
>> less than 10, just as what you want, the final '\0' is omitted!
>>
>> What's more, you can't get such information from the return value of
>> 'sprintf'. So I suggest you to choose 'snprintf' instead.
>>
> 
> Sorry. I thought his 'buffer' as 'buf'. But my suggestion is still
> worthy your thinking.

I'm quite sure using sprintf is ok. At least it's the way sysfs helper
functions are coded in other parts of the kernel too.

I agree that the variable names (buf and buffer) used are quite
confusing though... I'll fix that.

Best regards,

Nicolas
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ