From: "Martin J. Bligh" <mbligh@google.com>
To: Andrew Morton <akpm@osdl.org>
Cc: jeremy@goop.org, drfickle@us.ibm.com,
linux-kernel@vger.kernel.org, mbligh@mbligh.org,
linuxppc64-dev@ozlabs.org
Subject: Re: 2.6.17-mm2
Date: Wed, 28 Jun 2006 07:43:14 -0700 [thread overview]
Message-ID: <44A29582.7050403@google.com> (raw)
In-Reply-To: <20060628034748.018eecac.akpm@osdl.org>
Andrew Morton wrote:
> On Wed, 28 Jun 2006 03:42:15 -0700
> Andrew Morton <akpm@osdl.org> wrote:
>
>
>>his is caused by the vsprintf() changes. Right now, if you do
>>
>> snprintf(buf, 4, "1111111111111");
>>
>>the memory at `buf' gets [31 31 31 31 00], which is not good.
>>
>>This'll plug it, but I didn't check very hard whether it still has any
>>off-by-ones, or if breaks the intent of Jeremy's patch. I think it's OK..
Aha, you're a genius! How the hell did you figure that one out?
Andy / Steve ... any chance one of you could kick this through the
harness? Against -git10 or so, I'd think
Thanks,
M.
> That diff was against an older kernel and doesn't apply. This is against
> mainline:
>
> --- a/lib/vsprintf.c~vsnprintf-fix
> +++ a/lib/vsprintf.c
> @@ -259,7 +259,9 @@ int vsnprintf(char *buf, size_t size, co
> int len;
> unsigned long long num;
> int i, base;
> - char *str, *end, c;
> + char *str; /* Where we're writing to */
> + char *end; /* The last byte we can write to */
> + char c;
> const char *s;
>
> int flags; /* flags to number() */
> @@ -283,12 +285,12 @@ int vsnprintf(char *buf, size_t size, co
> }
>
> str = buf;
> - end = buf + size;
> + end = buf + size - 1;
>
> /* Make sure end is always >= buf */
> - if (end < buf) {
> + if (end < buf - 1) {
> end = ((void *)-1);
> - size = end - buf;
> + size = end - buf + 1;
> }
>
> for (; *fmt ; ++fmt) {
> @@ -494,7 +496,6 @@ int vsnprintf(char *buf, size_t size, co
> /* the trailing null byte doesn't count towards the total */
> return str-buf;
> }
> -
> EXPORT_SYMBOL(vsnprintf);
>
> /**
> _
>
WARNING: multiple messages have this Message-ID (diff)
From: "Martin J. Bligh" <mbligh@google.com>
To: Andrew Morton <akpm@osdl.org>
Cc: mbligh@mbligh.org, jeremy@goop.org, linux-kernel@vger.kernel.org,
apw@shadowen.org, linuxppc64-dev@ozlabs.org, drfickle@us.ibm.com
Subject: Re: 2.6.17-mm2
Date: Wed, 28 Jun 2006 07:43:14 -0700 [thread overview]
Message-ID: <44A29582.7050403@google.com> (raw)
In-Reply-To: <20060628034748.018eecac.akpm@osdl.org>
Andrew Morton wrote:
> On Wed, 28 Jun 2006 03:42:15 -0700
> Andrew Morton <akpm@osdl.org> wrote:
>
>
>>his is caused by the vsprintf() changes. Right now, if you do
>>
>> snprintf(buf, 4, "1111111111111");
>>
>>the memory at `buf' gets [31 31 31 31 00], which is not good.
>>
>>This'll plug it, but I didn't check very hard whether it still has any
>>off-by-ones, or if breaks the intent of Jeremy's patch. I think it's OK..
Aha, you're a genius! How the hell did you figure that one out?
Andy / Steve ... any chance one of you could kick this through the
harness? Against -git10 or so, I'd think
Thanks,
M.
> That diff was against an older kernel and doesn't apply. This is against
> mainline:
>
> --- a/lib/vsprintf.c~vsnprintf-fix
> +++ a/lib/vsprintf.c
> @@ -259,7 +259,9 @@ int vsnprintf(char *buf, size_t size, co
> int len;
> unsigned long long num;
> int i, base;
> - char *str, *end, c;
> + char *str; /* Where we're writing to */
> + char *end; /* The last byte we can write to */
> + char c;
> const char *s;
>
> int flags; /* flags to number() */
> @@ -283,12 +285,12 @@ int vsnprintf(char *buf, size_t size, co
> }
>
> str = buf;
> - end = buf + size;
> + end = buf + size - 1;
>
> /* Make sure end is always >= buf */
> - if (end < buf) {
> + if (end < buf - 1) {
> end = ((void *)-1);
> - size = end - buf;
> + size = end - buf + 1;
> }
>
> for (; *fmt ; ++fmt) {
> @@ -494,7 +496,6 @@ int vsnprintf(char *buf, size_t size, co
> /* the trailing null byte doesn't count towards the total */
> return str-buf;
> }
> -
> EXPORT_SYMBOL(vsnprintf);
>
> /**
> _
>
next prev parent reply other threads:[~2006-06-28 14:43 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-24 15:41 2.6.17-mm2 Martin J. Bligh
2006-06-26 14:48 ` 2.6.17-mm2 Martin J. Bligh
2006-06-27 15:37 ` 2.6.17-mm2 Martin J. Bligh
2006-06-27 15:37 ` 2.6.17-mm2 Martin J. Bligh
2006-06-28 10:42 ` 2.6.17-mm2 Andrew Morton
2006-06-28 10:42 ` 2.6.17-mm2 Andrew Morton
2006-06-28 10:47 ` 2.6.17-mm2 Andrew Morton
2006-06-28 14:43 ` Martin J. Bligh [this message]
2006-06-28 14:43 ` 2.6.17-mm2 Martin J. Bligh
2006-06-28 15:06 ` 2.6.17-mm2 Andy Whitcroft
2006-06-28 15:06 ` 2.6.17-mm2 Andy Whitcroft
2006-06-28 19:11 ` 2.6.17-mm2 Andrew Morton
2006-06-28 19:11 ` 2.6.17-mm2 Andrew Morton
2006-06-28 19:22 ` 2.6.17-mm2 Jeremy Fitzhardinge
2006-06-28 19:22 ` 2.6.17-mm2 Jeremy Fitzhardinge
2006-06-28 19:49 ` 2.6.17-mm2 Andrew Morton
2006-06-28 19:49 ` 2.6.17-mm2 Andrew Morton
2006-06-28 19:36 ` 2.6.17-mm2 Martin Bligh
2006-06-28 19:36 ` 2.6.17-mm2 Martin Bligh
2006-06-29 0:17 ` 2.6.17-mm2 Martin J. Bligh
2006-06-29 0:17 ` 2.6.17-mm2 Martin J. Bligh
2006-06-28 15:43 ` 2.6.17-mm2 Jeremy Fitzhardinge
2006-06-28 15:43 ` 2.6.17-mm2 Jeremy Fitzhardinge
-- strict thread matches above, loose matches on Subject: below --
2006-06-24 13:19 2.6.17-mm2 Andrew Morton
2006-06-24 15:53 ` 2.6.17-mm2 Rafael J. Wysocki
2006-06-24 17:20 ` 2.6.17-mm2 Dave Jones
2006-06-24 21:34 ` 2.6.17-mm2 Andrew Morton
2006-06-25 8:51 ` 2.6.17-mm2 Rafael J. Wysocki
2006-06-25 10:22 ` 2.6.17-mm2 Andrew Morton
2006-06-25 15:16 ` 2.6.17-mm2 Andrew Morton
2006-06-25 18:23 ` 2.6.17-mm2 Sam Ravnborg
2006-06-25 18:40 ` 2.6.17-mm2 Andrew Morton
2006-06-25 21:21 ` 2.6.17-mm2 Sam Ravnborg
2006-06-30 7:38 ` 2.6.17-mm2 Randy.Dunlap
2006-07-02 10:11 ` 2.6.17-mm2 Russell King
2006-07-02 18:42 ` 2.6.17-mm2 Randy.Dunlap
2006-07-02 18:47 ` 2.6.17-mm2 Arjan van de Ven
2006-07-02 18:47 ` 2.6.17-mm2 Sam Ravnborg
2006-07-03 5:50 ` 2.6.17-mm2 Randy.Dunlap
2006-07-03 13:49 ` 2.6.17-mm2 Russell King
2006-06-25 19:19 ` 2.6.17-mm2 Rafael J. Wysocki
2006-06-26 20:13 ` 2.6.17-mm2 Chandra Seetharaman
2006-06-24 19:41 ` 2.6.17-mm2 Dominik Karall
2006-06-24 21:43 ` 2.6.17-mm2 Andrew Morton
2006-06-25 6:06 ` 2.6.17-mm2 Reuben Farrelly
2006-06-25 9:37 ` 2.6.17-mm2 Barry K. Nathan
2006-06-25 10:29 ` 2.6.17-mm2 Reuben Farrelly
2006-06-25 11:19 ` 2.6.17-mm2 Michal Piotrowski
2006-06-25 11:40 ` 2.6.17-mm2 Andrew Morton
2006-06-25 12:18 ` 2.6.17-mm2 Michal Piotrowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=44A29582.7050403@google.com \
--to=mbligh@google.com \
--cc=akpm@osdl.org \
--cc=drfickle@us.ibm.com \
--cc=jeremy@goop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc64-dev@ozlabs.org \
--cc=mbligh@mbligh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.