Skip to content

Commit

Permalink
bpf: fix uninitialized variable in bpf tools
Browse files Browse the repository at this point in the history
[ Upstream commit 815425567dea6c54494e85050631d6bdda907c5d ]

Here the variable cont is used as the saved_pointer for a call to
strtok_r(). It is safe to use the value uninitialized in this
context however and the later reference is only ever used if
the strtok_r is successful. But, 'gcc-5' at least doesn't have all
this knowledge so initialize cont to NULL. Additionally, do the
natural NULL check before accessing just for completness.

The warning is the following:

./bpf/tools/bpf/bpf_dbg.c: In function ‘cmd_load’:
./bpf/tools/bpf/bpf_dbg.c:1077:13: warning: ‘cont’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  } else if (matches(subcmd, "pcap") == 0) {

Fixes: fd981e3 "filter: bpf_dbg: add minimal bpf debugger"
Signed-off-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
jrfastab authored and gregkh committed Jun 20, 2018
1 parent 09daf2d commit 40d526e
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions tools/net/bpf_dbg.c
Original file line number Diff line number Diff line change
Expand Up @@ -1063,7 +1063,7 @@ static int cmd_load_pcap(char *file)

static int cmd_load(char *arg)
{
char *subcmd, *cont, *tmp = strdup(arg);
char *subcmd, *cont = NULL, *tmp = strdup(arg);
int ret = CMD_OK;

subcmd = strtok_r(tmp, " ", &cont);
Expand All @@ -1073,7 +1073,10 @@ static int cmd_load(char *arg)
bpf_reset();
bpf_reset_breakpoints();

ret = cmd_load_bpf(cont);
if (!cont)
ret = CMD_ERR;
else
ret = cmd_load_bpf(cont);
} else if (matches(subcmd, "pcap") == 0) {
ret = cmd_load_pcap(cont);
} else {
Expand Down

0 comments on commit 40d526e

Please sign in to comment.