mirror of
https://git.proxmox.com/git/mirror_iproute2
synced 2025-10-18 16:21:58 +00:00
devlink: fix referencing namespace by PID
netns parameter for devlink reload is supposed to take PID
as well as string name. However, the PID parsing has two
bugs:
- the opts->netns member is unsigned so the < 0
condition is always false;
- the parameter list is not rewinded after parsing as
a name, so parsing as a pid uses the wrong argument.
Fixes: 08e8e1ca3e
("devlink: extend reload command to add support for network namespace change")
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
parent
081140bbc4
commit
9a0a2fcbf4
@ -345,6 +345,12 @@ static void dl_arg_inc(struct dl *dl)
|
||||
dl->argv++;
|
||||
}
|
||||
|
||||
static void dl_arg_dec(struct dl *dl)
|
||||
{
|
||||
dl->argc++;
|
||||
dl->argv--;
|
||||
}
|
||||
|
||||
static char *dl_argv_next(struct dl *dl)
|
||||
{
|
||||
char *ret;
|
||||
@ -1460,7 +1466,8 @@ static int dl_argv_parse(struct dl *dl, uint64_t o_required,
|
||||
if (err)
|
||||
return err;
|
||||
opts->netns = netns_get_fd(netns_str);
|
||||
if (opts->netns < 0) {
|
||||
if ((int)opts->netns < 0) {
|
||||
dl_arg_dec(dl);
|
||||
err = dl_argv_uint32_t(dl, &opts->netns);
|
||||
if (err)
|
||||
return err;
|
||||
|
Loading…
Reference in New Issue
Block a user