mirror of
https://git.proxmox.com/git/mirror_iproute2
synced 2025-11-01 13:54:12 +00:00
ipntable: Avoid memory allocation for filter.name
The original issue was that filter.name might end up unterminated if user provided string was too long. But in fact it is not necessary to copy the commandline parameter at all: just make filter.name point to it instead. Signed-off-by: Phil Sutter <phil@nwl.cc>
This commit is contained in:
parent
70a6df3962
commit
45c2ec9e95
@ -37,7 +37,7 @@ static struct
|
||||
int family;
|
||||
int index;
|
||||
#define NONE_DEV (-1)
|
||||
char name[1024];
|
||||
const char *name;
|
||||
} filter;
|
||||
|
||||
static void usage(void) __attribute__((noreturn));
|
||||
@ -367,7 +367,7 @@ static int print_ntable(const struct sockaddr_nl *who, struct nlmsghdr *n, void
|
||||
if (tb[NDTA_NAME]) {
|
||||
const char *name = rta_getattr_str(tb[NDTA_NAME]);
|
||||
|
||||
if (strlen(filter.name) > 0 && strcmp(filter.name, name))
|
||||
if (filter.name && strcmp(filter.name, name))
|
||||
return 0;
|
||||
}
|
||||
if (tb[NDTA_PARMS]) {
|
||||
@ -631,7 +631,7 @@ static int ipntable_show(int argc, char **argv)
|
||||
} else if (strcmp(*argv, "name") == 0) {
|
||||
NEXT_ARG();
|
||||
|
||||
strncpy(filter.name, *argv, sizeof(filter.name));
|
||||
filter.name = *argv;
|
||||
} else
|
||||
invarg("unknown", *argv);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user