[v2,1/1] eal: fix log message print for regex
Checks
Commit Message
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
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
>
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.
@@ -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)