* Format specifier issue when building kernel @ 2013-10-28 23:30 William Roberts 2013-10-28 23:31 ` William Roberts 0 siblings, 1 reply; 14+ messages in thread From: William Roberts @ 2013-10-28 23:30 UTC (permalink / raw) To: linux-audit [-- Attachment #1.1: Type: text/plain, Size: 343 bytes --] I've been working off of Richard Guy Brigs git repo on branch audit-for-next prepping my patch and I noticed a build warning: kernel/audit.c:832:8: warning: format ‘%A’ expects argument of type ‘double’, but argument 3 has type ‘char *’ [-Wformat] Looking at the code, it looks wrong: -- Respectfully, William C Roberts [-- Attachment #1.2: Type: text/html, Size: 489 bytes --] [-- Attachment #2: Type: text/plain, Size: 0 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Format specifier issue when building kernel 2013-10-28 23:30 Format specifier issue when building kernel William Roberts @ 2013-10-28 23:31 ` William Roberts 2013-10-29 1:35 ` Richard Guy Briggs 0 siblings, 1 reply; 14+ messages in thread From: William Roberts @ 2013-10-28 23:31 UTC (permalink / raw) To: linux-audit [-- Attachment #1.1: Type: text/plain, Size: 787 bytes --] On Mon, Oct 28, 2013 at 4:30 PM, William Roberts <bill.c.roberts@gmail.com>wrote: > I've been working off of Richard Guy Brigs git repo on branch > audit-for-next prepping my patch and I noticed a build warning: > > kernel/audit.c:832:8: warning: format ‘%A’ expects argument of type > ‘double’, but argument 3 has type ‘char *’ [-Wformat] > > Looking at the code, it looks wrong: > > audit_log_format(ab, " msg='%.AUDIT_MESSAGE_TEXT_MAXs'", (char *)data); The issue appears on the % specifier in there, it picks it up as %.A, which is of type double. Is this what was intended? <snip> > -- Respectfully, William C Roberts [-- Attachment #1.2: Type: text/html, Size: 1703 bytes --] [-- Attachment #2: Type: text/plain, Size: 0 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Format specifier issue when building kernel 2013-10-28 23:31 ` William Roberts @ 2013-10-29 1:35 ` Richard Guy Briggs 2013-10-29 1:43 ` William Roberts 0 siblings, 1 reply; 14+ messages in thread From: Richard Guy Briggs @ 2013-10-29 1:35 UTC (permalink / raw) To: William Roberts; +Cc: linux-audit On Mon, Oct 28, 2013 at 04:31:30PM -0700, William Roberts wrote: > On Mon, Oct 28, 2013 at 4:30 PM, William Roberts > <bill.c.roberts@gmail.com>wrote: > > > I've been working off of Richard Guy Brigs git repo on branch > > audit-for-next prepping my patch and I noticed a build warning: > > > > kernel/audit.c:832:8: warning: format ‘%A’ expects argument of type > > ‘double’, but argument 3 has type ‘char *’ [-Wformat] > > > > Looking at the code, it looks wrong: > > > > audit_log_format(ab, > " > msg='%.AUDIT_MESSAGE_TEXT_MAXs'", > (char *)data); > > The issue appears on the % specifier in there, it picks it up as %.A, which > is of type double. Is this what was intended? Hmmm, that should have picked up a macro from 06051fbe in audit-for-next. It should be pre-processed to "%.8560s". > William C Roberts - RGB -- Richard Guy Briggs <rbriggs@redhat.com> Senior Software Engineer Kernel Security AMER ENG Base Operating Systems Remote, Ottawa, Canada Voice: +1.647.777.2635 Internal: (81) 32635 Alt: +1.613.693.0684x3545 -- Linux-audit mailing list Linux-audit@redhat.com https://www.redhat.com/mailman/listinfo/linux-audit ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Format specifier issue when building kernel 2013-10-29 1:35 ` Richard Guy Briggs @ 2013-10-29 1:43 ` William Roberts 2013-10-29 3:55 ` William Roberts 0 siblings, 1 reply; 14+ messages in thread From: William Roberts @ 2013-10-29 1:43 UTC (permalink / raw) To: Richard Guy Briggs; +Cc: linux-audit [-- Attachment #1.1: Type: text/plain, Size: 1441 bytes --] On Mon, Oct 28, 2013 at 6:35 PM, Richard Guy Briggs <rgb@redhat.com> wrote: > On Mon, Oct 28, 2013 at 04:31:30PM -0700, William Roberts wrote: > > On Mon, Oct 28, 2013 at 4:30 PM, William Roberts > > <bill.c.roberts@gmail.com>wrote: > > > > > I've been working off of Richard Guy Brigs git repo on branch > > > audit-for-next prepping my patch and I noticed a build warning: > > > > > > kernel/audit.c:832:8: warning: format ‘%A’ expects argument of type > > > ‘double’, but argument 3 has type ‘char *’ [-Wformat] > > > > > > Looking at the code, it looks wrong: > > > > > > audit_log_format(ab, > > " > > msg='%.AUDIT_MESSAGE_TEXT_MAXs'", > > (char *)data); > > > > The issue appears on the % specifier in there, it picks it up as %.A, > which > > is of type double. Is this what was intended? > > Hmmm, that should have picked up a macro from 06051fbe in > audit-for-next. It should be pre-processed to "%.8560s". > > > William C Roberts > > > - RGB > > The qoutes are wrong for that. > -- > Richard Guy Briggs <rbriggs@redhat.com> > Senior Software Engineer > Kernel Security > AMER ENG Base Operating Systems > Remote, Ottawa, Canada > Voice: +1.647.777.2635 > Internal: (81) 32635 > Alt: +1.613.693.0684x3545 > -- Respectfully, William C Roberts [-- Attachment #1.2: Type: text/html, Size: 2487 bytes --] [-- Attachment #2: Type: text/plain, Size: 0 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Format specifier issue when building kernel 2013-10-29 1:43 ` William Roberts @ 2013-10-29 3:55 ` William Roberts 2013-10-31 18:45 ` Richard Guy Briggs 0 siblings, 1 reply; 14+ messages in thread From: William Roberts @ 2013-10-29 3:55 UTC (permalink / raw) To: Richard Guy Briggs; +Cc: linux-audit [-- Attachment #1.1: Type: text/plain, Size: 2405 bytes --] On Mon, Oct 28, 2013 at 6:43 PM, William Roberts <bill.c.roberts@gmail.com>wrote: > > > > On Mon, Oct 28, 2013 at 6:35 PM, Richard Guy Briggs <rgb@redhat.com>wrote: > >> On Mon, Oct 28, 2013 at 04:31:30PM -0700, William Roberts wrote: >> > On Mon, Oct 28, 2013 at 4:30 PM, William Roberts >> > <bill.c.roberts@gmail.com>wrote: >> > >> > > I've been working off of Richard Guy Brigs git repo on branch >> > > audit-for-next prepping my patch and I noticed a build warning: >> > > >> > > kernel/audit.c:832:8: warning: format ‘%A’ expects argument of type >> > > ‘double’, but argument 3 has type ‘char *’ [-Wformat] >> > > >> > > Looking at the code, it looks wrong: >> > > >> > > audit_log_format(ab, >> > " >> > msg='%.AUDIT_MESSAGE_TEXT_MAXs'", >> > (char *)data); >> > >> > The issue appears on the % specifier in there, it picks it up as %.A, >> which >> > is of type double. Is this what was intended? >> >> Hmmm, that should have picked up a macro from 06051fbe in >> audit-for-next. It should be pre-processed to "%.8560s". >> >> > William C Roberts >> >> >> - RGB >> >> > The qoutes are wrong for that. > Ok I see the value is not a string, but a numeric constant. Dont you need to do something like this: diff --git a/kernel/audit.c b/kernel/audit.c index bf4b1af..81dde3d 100644 --- a/kernel/audit.c +++ b/kernel/audit.c @@ -825,10 +825,12 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh) if (err) break; } +#define STR_HELPER(x) #x +#define STR(x) STR_HELPER(x) audit_log_common_recv_msg(&ab, msg_type); if (msg_type != AUDIT_USER_TTY) audit_log_format(ab, - " msg='%.AUDIT_MESSAGE_TEXT_MAXs'", + " msg='%."STR(AUDIT_MESSAGE_TEXT_MAX)"s'", (char *)data); else { int size; Unless their is some gnu-magic I don't know about. > <snip> > > > -- Respectfully, William C Roberts [-- Attachment #1.2: Type: text/html, Size: 4228 bytes --] [-- Attachment #2: Type: text/plain, Size: 0 bytes --] ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: Format specifier issue when building kernel 2013-10-29 3:55 ` William Roberts @ 2013-10-31 18:45 ` Richard Guy Briggs 2013-10-31 19:25 ` William Roberts 0 siblings, 1 reply; 14+ messages in thread From: Richard Guy Briggs @ 2013-10-31 18:45 UTC (permalink / raw) To: William Roberts; +Cc: linux-audit On Mon, Oct 28, 2013 at 08:55:08PM -0700, William Roberts wrote: > On Mon, Oct 28, 2013 at 6:43 PM, William Roberts > <bill.c.roberts@gmail.com>wrote: > > On Mon, Oct 28, 2013 at 6:35 PM, Richard Guy Briggs <rgb@redhat.com>wrote: > >> On Mon, Oct 28, 2013 at 04:31:30PM -0700, William Roberts wrote: > >> > On Mon, Oct 28, 2013 at 4:30 PM, William Roberts > >> > <bill.c.roberts@gmail.com>wrote: > >> > > I've been working off of Richard Guy Brigs git repo on branch > >> > > audit-for-next prepping my patch and I noticed a build warning: > >> > > > >> > > kernel/audit.c:832:8: warning: format ‘%A’ expects argument of type > >> > > ‘double’, but argument 3 has type ‘char *’ [-Wformat] > >> > > > >> > > Looking at the code, it looks wrong: > >> > > > >> > > audit_log_format(ab, > >> > " > >> > msg='%.AUDIT_MESSAGE_TEXT_MAXs'", > >> > (char *)data); > >> > > >> > The issue appears on the % specifier in there, it picks it up as > >> > %.A, which is of type double. Is this what was intended? > >> > >> Hmmm, that should have picked up a macro from 06051fbe in > >> audit-for-next. It should be pre-processed to "%.8560s". > >> > >> > William C Roberts > >> > >> - RGB > > > > The qoutes are wrong for that. > > Ok I see the value is not a string, but a numeric constant. Dont you need > to do something like this: > diff --git a/kernel/audit.c b/kernel/audit.c > index bf4b1af..81dde3d 100644 > --- a/kernel/audit.c > +++ b/kernel/audit.c > @@ -825,10 +825,12 @@ static int audit_receive_msg(struct sk_buff *skb, > struct nlmsghdr *nlh) > if (err) > break; > } > +#define STR_HELPER(x) #x > +#define STR(x) STR_HELPER(x) > audit_log_common_recv_msg(&ab, msg_type); > if (msg_type != AUDIT_USER_TTY) > audit_log_format(ab, > - " > msg='%.AUDIT_MESSAGE_TEXT_MAXs'", > + " > msg='%."STR(AUDIT_MESSAGE_TEXT_MAX)"s'", > (char *)data); > else { > int size; Ugh. That's not so easy to read... Slightly longer, how about this? diff --git a/kernel/audit.c b/kernel/audit.c index 8378c5e..3f569d1 100644 --- a/kernel/audit.c +++ b/kernel/audit.c @@ -824,11 +824,13 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh) break; } audit_log_common_recv_msg(&ab, msg_type); - if (msg_type != AUDIT_USER_TTY) - audit_log_format(ab, - " msg='%.AUDIT_MESSAGE_TEXT_MAXs'", - (char *)data); - else { + if (msg_type != AUDIT_USER_TTY) { + char fmt[64]; + strcat(fmt, " msg='%."); + strcat(fmt, "AUDIT_MESSAGE_TEXT_MAX"); + strcat(fmt, "s'"); + audit_log_format(ab, fmt, (char *)data); + } else { int size; audit_log_format(ab, " data="); > Unless their is some gnu-magic I don't know about. > > William C Roberts - RGB -- Richard Guy Briggs <rbriggs@redhat.com> Senior Software Engineer Kernel Security AMER ENG Base Operating Systems Remote, Ottawa, Canada Voice: +1.647.777.2635 Internal: (81) 32635 Alt: +1.613.693.0684x3545 -- Linux-audit mailing list Linux-audit@redhat.com https://www.redhat.com/mailman/listinfo/linux-audit ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: Format specifier issue when building kernel 2013-10-31 18:45 ` Richard Guy Briggs @ 2013-10-31 19:25 ` William Roberts 2013-11-01 16:24 ` Richard Guy Briggs 0 siblings, 1 reply; 14+ messages in thread From: William Roberts @ 2013-10-31 19:25 UTC (permalink / raw) To: Richard Guy Briggs; +Cc: linux-audit [-- Attachment #1.1: Type: text/plain, Size: 1482 bytes --] <snip> > > Ugh. That's not so easy to read... Slightly longer, how about this? > > diff --git a/kernel/audit.c b/kernel/audit.c > index 8378c5e..3f569d1 100644 > --- a/kernel/audit.c > +++ b/kernel/audit.c > @@ -824,11 +824,13 @@ static int audit_receive_msg(struct sk_buff *skb, > struct nlmsghdr *nlh) > break; > } > audit_log_common_recv_msg(&ab, msg_type); > - if (msg_type != AUDIT_USER_TTY) > - audit_log_format(ab, > - " > msg='%.AUDIT_MESSAGE_TEXT_MAXs'", > - (char *)data); > - else { > + if (msg_type != AUDIT_USER_TTY) { > + char fmt[64]; > + strcat(fmt, " msg='%."); > + strcat(fmt, "AUDIT_MESSAGE_TEXT_MAX"); > + strcat(fmt, "s'"); > + audit_log_format(ab, fmt, (char *)data); > + } else { > int size; > > audit_log_format(ab, " data="); > I am ok with this. In fact I was going to do this the first time, but I thought their would be some explicit reason to avoid the additional run time overhead as the concat could be made at compile time. <snip> [-- Attachment #1.2: Type: text/html, Size: 2146 bytes --] [-- Attachment #2: Type: text/plain, Size: 0 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Format specifier issue when building kernel 2013-10-31 19:25 ` William Roberts @ 2013-11-01 16:24 ` Richard Guy Briggs 2013-11-01 16:34 ` Steve Grubb 0 siblings, 1 reply; 14+ messages in thread From: Richard Guy Briggs @ 2013-11-01 16:24 UTC (permalink / raw) To: William Roberts; +Cc: linux-audit On Thu, Oct 31, 2013 at 12:25:55PM -0700, William Roberts wrote: > > + if (msg_type != AUDIT_USER_TTY) { > > + char fmt[64]; > > + strcat(fmt, " msg='%."); > > + strcat(fmt, "AUDIT_MESSAGE_TEXT_MAX"); > > + strcat(fmt, "s'"); > > + audit_log_format(ab, fmt, (char *)data); > > + } else { > > I am ok with this. In fact I was going to do this the first time, but I > thought their would be some explicit reason to avoid the additional > run time overhead as the concat could be made at compile time. Ok, this was in danger of starting with fmt in an unknown state. Latest patch: diff --git a/kernel/audit.c b/kernel/audit.c @@ -148,6 +148,8 @@ DEFINE_MUTEX(audit_cmd_mutex); * should be at least that large. */ #define AUDIT_BUFSIZ 1024 +char usermsg_format[64] = ""; + /* AUDIT_MAXFREE is the number of empty audit_buffers we keep on the * audit_freelist. Doing so eliminates many kmalloc/kfree calls. */ #define AUDIT_MAXFREE (2*NR_CPUS) @@ -714,11 +716,15 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh) break; } audit_log_common_recv_msg(&ab, msg_type); - if (msg_type != AUDIT_USER_TTY) - audit_log_format(ab, - " msg='%.AUDIT_MESSAGE_TEXT_MAXs'", + if (msg_type != AUDIT_USER_TTY) { + if (unlikely(usermsg_format[0] == 0)) + snprintf(usermsg_format, + sizeof(usermsg_format), + " msg=\'%%.%ds\'", + AUDIT_MESSAGE_TEXT_MAX); + audit_log_format(ab, usermsg_format, (char *)data); - else { + } else { int size; audit_log_format(ab, " data="); - RGB -- Richard Guy Briggs <rbriggs@redhat.com> Senior Software Engineer Kernel Security AMER ENG Base Operating Systems Remote, Ottawa, Canada Voice: +1.647.777.2635 Internal: (81) 32635 Alt: +1.613.693.0684x3545 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Format specifier issue when building kernel 2013-11-01 16:24 ` Richard Guy Briggs @ 2013-11-01 16:34 ` Steve Grubb 2013-11-01 16:38 ` Richard Guy Briggs 0 siblings, 1 reply; 14+ messages in thread From: Steve Grubb @ 2013-11-01 16:34 UTC (permalink / raw) To: linux-audit; +Cc: Richard Guy Briggs On Friday, November 01, 2013 12:24:55 PM Richard Guy Briggs wrote: > On Thu, Oct 31, 2013 at 12:25:55PM -0700, William Roberts wrote: > > > + if (msg_type != AUDIT_USER_TTY) { > > > + char fmt[64]; > > > + strcat(fmt, " msg='%."); > > > + strcat(fmt, "AUDIT_MESSAGE_TEXT_MAX"); > > > + strcat(fmt, "s'"); > > > + audit_log_format(ab, fmt, (char *)data); > > > + } else { > > > > I am ok with this. In fact I was going to do this the first time, but I > > thought their would be some explicit reason to avoid the additional > > run time overhead as the concat could be made at compile time. > > Ok, this was in danger of starting with fmt in an unknown state. Latest > patch: > > diff --git a/kernel/audit.c b/kernel/audit.c > @@ -148,6 +148,8 @@ DEFINE_MUTEX(audit_cmd_mutex); > * should be at least that large. */ > #define AUDIT_BUFSIZ 1024 > > +char usermsg_format[64] = ""; You might want this ^^^ to be static so its not global in scope. -Steve > /* AUDIT_MAXFREE is the number of empty audit_buffers we keep on the > * audit_freelist. Doing so eliminates many kmalloc/kfree calls. */ > #define AUDIT_MAXFREE (2*NR_CPUS) > @@ -714,11 +716,15 @@ static int audit_receive_msg(struct sk_buff *skb, > struct nlmsghdr *nlh) break; > } > audit_log_common_recv_msg(&ab, msg_type); > - if (msg_type != AUDIT_USER_TTY) > - audit_log_format(ab, > - " msg='%.AUDIT_MESSAGE_TEXT_MAXs'", > + if (msg_type != AUDIT_USER_TTY) { > + if (unlikely(usermsg_format[0] == 0)) > + snprintf(usermsg_format, > + sizeof(usermsg_format), > + " msg=\'%%.%ds\'", > + AUDIT_MESSAGE_TEXT_MAX); > + audit_log_format(ab, usermsg_format, > (char *)data); > - else { > + } else { > int size; > > audit_log_format(ab, " data="); > > - RGB > > -- > Richard Guy Briggs <rbriggs@redhat.com> > Senior Software Engineer > Kernel Security > AMER ENG Base Operating Systems > Remote, Ottawa, Canada > Voice: +1.647.777.2635 > Internal: (81) 32635 > Alt: +1.613.693.0684x3545 > > -- > Linux-audit mailing list > Linux-audit@redhat.com > https://www.redhat.com/mailman/listinfo/linux-audit ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Format specifier issue when building kernel 2013-11-01 16:34 ` Steve Grubb @ 2013-11-01 16:38 ` Richard Guy Briggs 2013-11-01 19:57 ` Richard Guy Briggs 0 siblings, 1 reply; 14+ messages in thread From: Richard Guy Briggs @ 2013-11-01 16:38 UTC (permalink / raw) To: Steve Grubb; +Cc: linux-audit On Fri, Nov 01, 2013 at 12:34:55PM -0400, Steve Grubb wrote: > On Friday, November 01, 2013 12:24:55 PM Richard Guy Briggs wrote: > > On Thu, Oct 31, 2013 at 12:25:55PM -0700, William Roberts wrote: > > > > + if (msg_type != AUDIT_USER_TTY) { > > > > + char fmt[64]; > > > > + strcat(fmt, " msg='%."); > > > > + strcat(fmt, "AUDIT_MESSAGE_TEXT_MAX"); > > > > + strcat(fmt, "s'"); > > > > + audit_log_format(ab, fmt, (char *)data); > > > > + } else { > > > > > > I am ok with this. In fact I was going to do this the first time, but I > > > thought their would be some explicit reason to avoid the additional > > > run time overhead as the concat could be made at compile time. > > > > Ok, this was in danger of starting with fmt in an unknown state. Latest > > patch: > > > > diff --git a/kernel/audit.c b/kernel/audit.c > > @@ -148,6 +148,8 @@ DEFINE_MUTEX(audit_cmd_mutex); > > * should be at least that large. */ > > #define AUDIT_BUFSIZ 1024 > > > > +char usermsg_format[64] = ""; > > You might want this ^^^ to be static so its not global in scope. Yup, good point. Thanks. > -Steve > > > /* AUDIT_MAXFREE is the number of empty audit_buffers we keep on the > > * audit_freelist. Doing so eliminates many kmalloc/kfree calls. */ > > #define AUDIT_MAXFREE (2*NR_CPUS) > > @@ -714,11 +716,15 @@ static int audit_receive_msg(struct sk_buff *skb, > > struct nlmsghdr *nlh) break; > > } > > audit_log_common_recv_msg(&ab, msg_type); > > - if (msg_type != AUDIT_USER_TTY) > > - audit_log_format(ab, > > - " msg='%.AUDIT_MESSAGE_TEXT_MAXs'", > > + if (msg_type != AUDIT_USER_TTY) { > > + if (unlikely(usermsg_format[0] == 0)) > > + snprintf(usermsg_format, > > + sizeof(usermsg_format), > > + " msg=\'%%.%ds\'", > > + AUDIT_MESSAGE_TEXT_MAX); > > + audit_log_format(ab, usermsg_format, > > (char *)data); > > - else { > > + } else { > > int size; > > > > audit_log_format(ab, " data="); > > > > - RGB > > > > -- > > Richard Guy Briggs <rbriggs@redhat.com> > > Senior Software Engineer > > Kernel Security > > AMER ENG Base Operating Systems > > Remote, Ottawa, Canada > > Voice: +1.647.777.2635 > > Internal: (81) 32635 > > Alt: +1.613.693.0684x3545 > > > > -- > > Linux-audit mailing list > > Linux-audit@redhat.com > > https://www.redhat.com/mailman/listinfo/linux-audit > - RGB -- Richard Guy Briggs <rbriggs@redhat.com> Senior Software Engineer Kernel Security AMER ENG Base Operating Systems Remote, Ottawa, Canada Voice: +1.647.777.2635 Internal: (81) 32635 Alt: +1.613.693.0684x3545 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Format specifier issue when building kernel 2013-11-01 16:38 ` Richard Guy Briggs @ 2013-11-01 19:57 ` Richard Guy Briggs 2013-11-01 22:10 ` William Roberts 0 siblings, 1 reply; 14+ messages in thread From: Richard Guy Briggs @ 2013-11-01 19:57 UTC (permalink / raw) To: linux-audit On Fri, Nov 01, 2013 at 12:38:15PM -0400, Richard Guy Briggs wrote: > On Fri, Nov 01, 2013 at 12:34:55PM -0400, Steve Grubb wrote: > > On Friday, November 01, 2013 12:24:55 PM Richard Guy Briggs wrote: > > > On Thu, Oct 31, 2013 at 12:25:55PM -0700, William Roberts wrote: > > > +char usermsg_format[64] = ""; > > > > You might want this ^^^ to be static so its not global in scope. > > Yup, good point. Thanks. Better yet, make it local to that if statement, but Eric Paris has a far more readable and elegant solution: diff --git a/kernel/audit.c b/kernel/audit.c @@ -864,8 +864,8 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh) } audit_log_common_recv_msg(&ab, msg_type); if (msg_type != AUDIT_USER_TTY) - audit_log_format(ab, - " msg='%.AUDIT_MESSAGE_TEXT_MAXs'", + audit_log_format(ab, " msg='%.*s'", + AUDIT_MESSAGE_TEXT_MAX, (char *)data); else { int size; I forgot about the * format specifier... > > -Steve > > > > > - RGB > > - RGB - RGB -- Richard Guy Briggs <rbriggs@redhat.com> Senior Software Engineer Kernel Security AMER ENG Base Operating Systems Remote, Ottawa, Canada Voice: +1.647.777.2635 Internal: (81) 32635 Alt: +1.613.693.0684x3545 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Format specifier issue when building kernel 2013-11-01 19:57 ` Richard Guy Briggs @ 2013-11-01 22:10 ` William Roberts 2013-11-01 22:20 ` David Rebman 0 siblings, 1 reply; 14+ messages in thread From: William Roberts @ 2013-11-01 22:10 UTC (permalink / raw) To: Richard Guy Briggs; +Cc: linux-audit [-- Attachment #1.1: Type: text/plain, Size: 1835 bytes --] On Nov 1, 2013 12:58 PM, "Richard Guy Briggs" <rgb@redhat.com> wrote: > > On Fri, Nov 01, 2013 at 12:38:15PM -0400, Richard Guy Briggs wrote: > > On Fri, Nov 01, 2013 at 12:34:55PM -0400, Steve Grubb wrote: > > > On Friday, November 01, 2013 12:24:55 PM Richard Guy Briggs wrote: > > > > On Thu, Oct 31, 2013 at 12:25:55PM -0700, William Roberts wrote: > > > > +char usermsg_format[64] = ""; > > > > > > You might want this ^^^ to be static so its not global in scope. > > > > Yup, good point. Thanks. > > Better yet, make it local to that if statement, but Eric Paris has a far > more readable and elegant solution: > > diff --git a/kernel/audit.c b/kernel/audit.c > @@ -864,8 +864,8 @@ static int audit_receive_msg(struct sk_buff *skb, > struct nlmsghdr *nlh) > } > audit_log_common_recv_msg(&ab, msg_type); > if (msg_type != AUDIT_USER_TTY) > - audit_log_format(ab, > - " msg='%.AUDIT_MESSAGE_TEXT_MAXs'", > + audit_log_format(ab, " msg='%.*s'", > + AUDIT_MESSAGE_TEXT_MAX, > (char *)data); > else { > int size; > > I forgot about the * format specifier... Yeah me too... I think everyone does :-) > > > > -Steve > > > > > > > - RGB > > > > - RGB > > - RGB > > -- > Richard Guy Briggs <rbriggs@redhat.com> > Senior Software Engineer > Kernel Security > AMER ENG Base Operating Systems > Remote, Ottawa, Canada > Voice: +1.647.777.2635 > Internal: (81) 32635 > Alt: +1.613.693.0684x3545 > > -- > Linux-audit mailing list > Linux-audit@redhat.com > https://www.redhat.com/mailman/listinfo/linux-audit [-- Attachment #1.2: Type: text/html, Size: 2616 bytes --] [-- Attachment #2: Type: text/plain, Size: 0 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Format specifier issue when building kernel 2013-11-01 22:10 ` William Roberts @ 2013-11-01 22:20 ` David Rebman 2013-11-01 22:22 ` William Roberts 0 siblings, 1 reply; 14+ messages in thread From: David Rebman @ 2013-11-01 22:20 UTC (permalink / raw) To: William Roberts, Richard Guy Briggs; +Cc: linux-audit@redhat.com [-- Attachment #1.1: Type: text/plain, Size: 2354 bytes --] unsubscribe From: William Roberts <bill.c.roberts@gmail.com<mailto:bill.c.roberts@gmail.com>> Date: Friday, November 1, 2013 at 5:10 PM To: Richard Guy Briggs <rgb@redhat.com<mailto:rgb@redhat.com>> Cc: "linux-audit@redhat.com<mailto:linux-audit@redhat.com>" <linux-audit@redhat.com<mailto:linux-audit@redhat.com>> Subject: Re: Format specifier issue when building kernel On Nov 1, 2013 12:58 PM, "Richard Guy Briggs" <rgb@redhat.com<mailto:rgb@redhat.com>> wrote: > > On Fri, Nov 01, 2013 at 12:38:15PM -0400, Richard Guy Briggs wrote: > > On Fri, Nov 01, 2013 at 12:34:55PM -0400, Steve Grubb wrote: > > > On Friday, November 01, 2013 12:24:55 PM Richard Guy Briggs wrote: > > > > On Thu, Oct 31, 2013 at 12:25:55PM -0700, William Roberts wrote: > > > > +char usermsg_format[64] = ""; > > > > > > You might want this ^^^ to be static so its not global in scope. > > > > Yup, good point. Thanks. > > Better yet, make it local to that if statement, but Eric Paris has a far > more readable and elegant solution: > > diff --git a/kernel/audit.c b/kernel/audit.c > @@ -864,8 +864,8 @@ static int audit_receive_msg(struct sk_buff *skb, > struct nlmsghdr *nlh) > } > audit_log_common_recv_msg(&ab, msg_type); > if (msg_type != AUDIT_USER_TTY) > - audit_log_format(ab, > - " msg='%.AUDIT_MESSAGE_TEXT_MAXs'", > + audit_log_format(ab, " msg='%.*s'", > + AUDIT_MESSAGE_TEXT_MAX, > (char *)data); > else { > int size; > > I forgot about the * format specifier... Yeah me too... I think everyone does :-) > > > > -Steve > > > > > > > - RGB > > > > - RGB > > - RGB > > -- > Richard Guy Briggs <rbriggs@redhat.com<mailto:rbriggs@redhat.com>> > Senior Software Engineer > Kernel Security > AMER ENG Base Operating Systems > Remote, Ottawa, Canada > Voice: +1.647.777.2635 > Internal: (81) 32635 > Alt: +1.613.693.0684x3545 > > -- > Linux-audit mailing list > Linux-audit@redhat.com<mailto:Linux-audit@redhat.com> > https://www.redhat.com/mailman/listinfo/linux-audit [-- Attachment #1.2: Type: text/html, Size: 4828 bytes --] [-- Attachment #2: Type: text/plain, Size: 0 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Format specifier issue when building kernel 2013-11-01 22:20 ` David Rebman @ 2013-11-01 22:22 ` William Roberts 0 siblings, 0 replies; 14+ messages in thread From: William Roberts @ 2013-11-01 22:22 UTC (permalink / raw) To: David Rebman; +Cc: Richard Guy Briggs, linux-audit [-- Attachment #1.1: Type: text/plain, Size: 2344 bytes --] FYI... Sending unsubscribe to this list doest work. On Nov 1, 2013 3:20 PM, "David Rebman" <drebman@nexuminc.com> wrote: > unsubscribe > > From: William Roberts <bill.c.roberts@gmail.com> > Date: Friday, November 1, 2013 at 5:10 PM > To: Richard Guy Briggs <rgb@redhat.com> > Cc: "linux-audit@redhat.com" <linux-audit@redhat.com> > Subject: Re: Format specifier issue when building kernel > > > On Nov 1, 2013 12:58 PM, "Richard Guy Briggs" <rgb@redhat.com> wrote: > > > > On Fri, Nov 01, 2013 at 12:38:15PM -0400, Richard Guy Briggs wrote: > > > On Fri, Nov 01, 2013 at 12:34:55PM -0400, Steve Grubb wrote: > > > > On Friday, November 01, 2013 12:24:55 PM Richard Guy Briggs wrote: > > > > > On Thu, Oct 31, 2013 at 12:25:55PM -0700, William Roberts wrote: > > > > > +char usermsg_format[64] = ""; > > > > > > > > You might want this ^^^ to be static so its not global in scope. > > > > > > Yup, good point. Thanks. > > > > Better yet, make it local to that if statement, but Eric Paris has a far > > more readable and elegant solution: > > > > diff --git a/kernel/audit.c b/kernel/audit.c > > @@ -864,8 +864,8 @@ static int audit_receive_msg(struct sk_buff *skb, > > struct nlmsghdr *nlh) > > } > > audit_log_common_recv_msg(&ab, msg_type); > > if (msg_type != AUDIT_USER_TTY) > > - audit_log_format(ab, > > - " > msg='%.AUDIT_MESSAGE_TEXT_MAXs'", > > + audit_log_format(ab, " msg='%.*s'", > > + AUDIT_MESSAGE_TEXT_MAX, > > (char *)data); > > else { > > int size; > > > > I forgot about the * format specifier... > Yeah me too... I think everyone does :-) > > > > > > -Steve > > > > > > > > > - RGB > > > > > > - RGB > > > > - RGB > > > > -- > > Richard Guy Briggs <rbriggs@redhat.com> > > Senior Software Engineer > > Kernel Security > > AMER ENG Base Operating Systems > > Remote, Ottawa, Canada > > Voice: +1.647.777.2635 > > Internal: (81) 32635 > > Alt: +1.613.693.0684x3545 > > > > -- > > Linux-audit mailing list > > Linux-audit@redhat.com > > https://www.redhat.com/mailman/listinfo/linux-audit > [-- Attachment #1.2: Type: text/html, Size: 4379 bytes --] [-- Attachment #2: Type: text/plain, Size: 0 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2013-11-01 22:22 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-10-28 23:30 Format specifier issue when building kernel William Roberts 2013-10-28 23:31 ` William Roberts 2013-10-29 1:35 ` Richard Guy Briggs 2013-10-29 1:43 ` William Roberts 2013-10-29 3:55 ` William Roberts 2013-10-31 18:45 ` Richard Guy Briggs 2013-10-31 19:25 ` William Roberts 2013-11-01 16:24 ` Richard Guy Briggs 2013-11-01 16:34 ` Steve Grubb 2013-11-01 16:38 ` Richard Guy Briggs 2013-11-01 19:57 ` Richard Guy Briggs 2013-11-01 22:10 ` William Roberts 2013-11-01 22:20 ` David Rebman 2013-11-01 22:22 ` William Roberts
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox