[v2,1/1] eal: fix log message print for regex

Message ID 20200309061723.19732-1-skori@marvell.com (mailing list archive)
State Accepted, archived
Delegated to: David Marchand
Headers
Series [v2,1/1] eal: fix log message print for regex |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation success Compilation OK
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed

Commit Message

Sunil Kumar Kori March 9, 2020, 6:17 a.m. UTC
  If user passes log-level eal parameter to enable log level based on regex
then in case of error message is being printed for pattern match instead of
regex. Following is the warning message thrown:

Compiling C object 'lib/76b5a35@@rte_eal@sta/librte_eal_common_eal_common_options.c.o'.
In function ‘eal_parse_log_level’,
   inlined from ‘eal_parse_common_option’ at ../lib/librte_eal/common/eal_common_options.c:1418:7:
../lib/librte_eal/common/eal_common_options.c:1053:4: warning: ‘%s’ directive argument is null [-Wformat-overflow=]
 1053 |    fprintf(stderr, "cannot set log level %s,%d\n",
      |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1054 |     pattern, priority);
      |     ~~~~~~~~~~~~~~~~~~

Fixes: 7f0bb634a140 ("log: add ability to match log type with globbing")
Cc: stable@dpdk.org

Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
Acked-by: David Marchand <david.marchand@redhat.com>
---
v2:
 - Updated Cc: stable@dpdk.org in commit message

 lib/librte_eal/common/eal_common_options.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Jerin Jacob March 9, 2020, 7:08 a.m. UTC | #1
On Mon, Mar 9, 2020 at 11:47 AM Sunil Kumar Kori <skori@marvell.com> wrote:
>
> If user passes log-level eal parameter to enable log level based on regex
> then in case of error message is being printed for pattern match instead of
> regex. Following is the warning message thrown:
>
> Compiling C object 'lib/76b5a35@@rte_eal@sta/librte_eal_common_eal_common_options.c.o'.
> In function ‘eal_parse_log_level’,
>    inlined from ‘eal_parse_common_option’ at ../lib/librte_eal/common/eal_common_options.c:1418:7:
> ../lib/librte_eal/common/eal_common_options.c:1053:4: warning: ‘%s’ directive argument is null [-Wformat-overflow=]
>  1053 |    fprintf(stderr, "cannot set log level %s,%d\n",
>       |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>  1054 |     pattern, priority);
>       |     ~~~~~~~~~~~~~~~~~~
>
> Fixes: 7f0bb634a140 ("log: add ability to match log type with globbing")
> Cc: stable@dpdk.org
>
> Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
> Acked-by: David Marchand <david.marchand@redhat.com>

Reviewed-by: Jerin Jacob <jerinj@marvell.com>


> ---
> v2:
>  - Updated Cc: stable@dpdk.org in commit message
>
>  lib/librte_eal/common/eal_common_options.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c
> index 75974dd5b..525e51e7d 100644
> --- a/lib/librte_eal/common/eal_common_options.c
> +++ b/lib/librte_eal/common/eal_common_options.c
> @@ -1046,7 +1046,7 @@ eal_parse_log_level(const char *arg)
>         if (regex) {
>                 if (rte_log_set_level_regexp(regex, priority) < 0) {
>                         fprintf(stderr, "cannot set log level %s,%d\n",
> -                               pattern, priority);
> +                               regex, priority);
>                         goto fail;
>                 }
>                 if (rte_log_save_regexp(regex, priority) < 0)
> --
> 2.17.1
>
  
David Marchand March 13, 2020, 9:46 a.m. UTC | #2
On Mon, Mar 9, 2020 at 8:08 AM Jerin Jacob <jerinjacobk@gmail.com> wrote:
>
> On Mon, Mar 9, 2020 at 11:47 AM Sunil Kumar Kori <skori@marvell.com> wrote:
> >
> > If user passes log-level eal parameter to enable log level based on regex
> > then in case of error message is being printed for pattern match instead of
> > regex. Following is the warning message thrown:
> >
> > Compiling C object 'lib/76b5a35@@rte_eal@sta/librte_eal_common_eal_common_options.c.o'.
> > In function ‘eal_parse_log_level’,
> >    inlined from ‘eal_parse_common_option’ at ../lib/librte_eal/common/eal_common_options.c:1418:7:
> > ../lib/librte_eal/common/eal_common_options.c:1053:4: warning: ‘%s’ directive argument is null [-Wformat-overflow=]
> >  1053 |    fprintf(stderr, "cannot set log level %s,%d\n",
> >       |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >  1054 |     pattern, priority);
> >       |     ~~~~~~~~~~~~~~~~~~
> >
> > Fixes: 7f0bb634a140 ("log: add ability to match log type with globbing")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
> > Acked-by: David Marchand <david.marchand@redhat.com>
>
> Reviewed-by: Jerin Jacob <jerinj@marvell.com>

I did not reproduce this with this format-overflow flag...
Anyway, applied.
  

Patch

diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c
index 75974dd5b..525e51e7d 100644
--- a/lib/librte_eal/common/eal_common_options.c
+++ b/lib/librte_eal/common/eal_common_options.c
@@ -1046,7 +1046,7 @@  eal_parse_log_level(const char *arg)
 	if (regex) {
 		if (rte_log_set_level_regexp(regex, priority) < 0) {
 			fprintf(stderr, "cannot set log level %s,%d\n",
-				pattern, priority);
+				regex, priority);
 			goto fail;
 		}
 		if (rte_log_save_regexp(regex, priority) < 0)