On Mon, Oct 24, 2011 at 10:05 PM, Nicholas A. Bellinger
<n...@linux-iscsi.org> wrote:
> On Mon, 2011-10-24 at 21:58 +0200, Bart Van Assche wrote:
>> On Mon, Oct 24, 2011 at 9:49 PM, Nicholas A. Bellinger
>> <n...@linux-iscsi.org> wrote:
>> > On Mon, 2011-10-24 at 21:44 +0200, Bart Van Assche wrote:
>> >> On Mon, Oct 24, 2011 at 7:33 AM, Nicholas A. Bellinger
>> >> <n...@linux-iscsi.org> wrote:
>> >> > +static ssize_t srpt_tpg_attrib_store_srp_max_rsp_size(
>> >> > +       struct se_portal_group *se_tpg,
>> >> > +       const char *page,
>> >> > +       size_t count)
>> >> > +{
>> >> > +       struct srpt_port *sport = container_of(se_tpg, struct 
>> >> > srpt_port, port_tpg_1);
>> >> > +       unsigned long val;
>> >> > +       int ret;
>> >> > +
>> >> > +       ret = strict_strtoul(page, 0, &val);
>> >>
>> >> If the data "page" points at only consists of digits, the above
>> >> strict_strtoul() call will trigger a past-end-of-buffer read.
>> >
>> > I don't understand what you mean here.  Can you provide a test case to
>> > demonstrate please..?
>>
>> echo -n "345" >$configfs_path_of_parameter.
>
> Still not sure what your getting at here..?

Only the data in page[0..count-1] is guaranteed to be initialized.
strict_strtoul() will read until it either finds whitespace or a
binary zero, so if the data in page[] does neither contain whitespace
nor a binary zero then strict_strtoul() will read past the end of the
data in page[]. There may be any data at page[count], including a
valid digit.

Bart.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to