From: "Justin P. mattock" <justinmattock@gmail.com>
To: Joe Perches <joe@perches.com>
Cc: Eric Paris <eparis@redhat.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
linux-kernel@vger.kernel.org, fweisbec@gmail.com
Subject: Re: [REGRESSION PATCH V2] vsprintf: Change struct printf_spec.precision from s8 to s16
Date: Wed, 14 Apr 2010 09:47:35 -0700 [thread overview]
Message-ID: <4BC5F1A7.8060208@gmail.com> (raw)
In-Reply-To: <1271262460.1578.53.camel@Joe-Laptop.home>
On 04/14/2010 09:27 AM, Joe Perches wrote:
> Commit ef0658f3de484bf9b173639cd47544584e01efa5 changed precision
> from int to s8.
>
> There is existing kernel code that uses a larger precision.
>
> An example from the audit code:
> vsnprintf(...,..., " msg='%.1024s'", (char *)data);
> which overflows precision and truncates to nothing.
>
> Extending precision size fixes the audit system issue.
>
> Other changes:
>
> Change the size of the struct printf_spec.type from u16 to u8 so
> sizeof(struct printf_spec) stays as small as possible.
> Reorder the struct members so sizeof(struct printf_spec) remains 64 bits
> without alignment holes.
> Document the struct members a bit more.
>
> Original-patch-by: Eric Paris<eparis@redhat.com>
> Signed-off-by: Joe Perches<joe@perches.com>
> ---
> lib/vsprintf.c | 10 +++++-----
> 1 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/lib/vsprintf.c b/lib/vsprintf.c
> index 24112e5..7376b7c 100644
> --- a/lib/vsprintf.c
> +++ b/lib/vsprintf.c
> @@ -408,12 +408,12 @@ enum format_type {
> };
>
> struct printf_spec {
> - u16 type;
> - s16 field_width; /* width of output field */
> + u8 type; /* format_type enum */
> u8 flags; /* flags to number() */
> - u8 base;
> - s8 precision; /* # of digits/chars */
> - u8 qualifier;
> + u8 base; /* number base, 8, 10 or 16 only */
> + u8 qualifier; /* number qualifier, one of 'hHlLtzZ' */
> + s16 field_width; /* width of output field */
> + s16 precision; /* # of digits/chars */
> };
>
> static char *number(char *buf, char *end, unsigned long long num,
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
just applied:
the first patch in this thread is good,
as well as this one.
Tested-by: Justin P. Mattock <justinmattock@gmail.com>
Justin P. Mattock
next prev parent reply other threads:[~2010-04-14 16:46 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-14 1:13 [REGRESSION PATCH] vsprintf: increase sizeof precision in printf_spec Eric Paris
2010-04-14 1:33 ` Joe Perches
2010-04-14 2:44 ` Eric Paris
2010-04-14 3:01 ` Joe Perches
2010-04-14 14:40 ` Justin P. mattock
2010-04-14 15:00 ` Frederic Weisbecker
2010-04-14 16:27 ` [REGRESSION PATCH V2] vsprintf: Change struct printf_spec.precision from s8 to s16 Joe Perches
2010-04-14 16:47 ` Justin P. mattock [this message]
2010-04-14 18:50 ` Eric Paris
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=4BC5F1A7.8060208@gmail.com \
--to=justinmattock@gmail.com \
--cc=eparis@redhat.com \
--cc=fweisbec@gmail.com \
--cc=joe@perches.com \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.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.