From: Guillaume Nault Date: Fri, 8 Nov 2019 17:00:12 +0000 (+0100) Subject: ipnetns: treat NETNSA_NSID and NETNSA_CURRENT_NSID as signed X-Git-Tag: v5.5.0~57^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f19966efeedf5292f003aaccecc3ac3a8a069b28;p=thirdparty%2Fiproute2.git ipnetns: treat NETNSA_NSID and NETNSA_CURRENT_NSID as signed These attributes are signed (with -1 meaning NETNSA_NSID_NOT_ASSIGNED). So let's use rta_getattr_s32() and print_int() instead of their unsigned counterpart to avoid confusion. Signed-off-by: Guillaume Nault Signed-off-by: David Ahern --- diff --git a/ip/ipnetns.c b/ip/ipnetns.c index fc58a04b5..06a773e43 100644 --- a/ip/ipnetns.c +++ b/ip/ipnetns.c @@ -137,7 +137,7 @@ int get_netnsid_from_name(const char *name) parse_rtattr(tb, NETNSA_MAX, NETNS_RTA(rthdr), len); if (tb[NETNSA_NSID]) { - ret = rta_getattr_u32(tb[NETNSA_NSID]); + ret = rta_getattr_s32(tb[NETNSA_NSID]); } out: @@ -317,20 +317,20 @@ int print_nsid(struct nlmsghdr *n, void *arg) if (n->nlmsg_type == RTM_DELNSID) print_bool(PRINT_ANY, "deleted", "Deleted ", true); - nsid = rta_getattr_u32(tb[NETNSA_NSID]); + nsid = rta_getattr_s32(tb[NETNSA_NSID]); if (nsid < 0) print_string(PRINT_ANY, "nsid", "nsid %s ", "not-assigned"); else - print_uint(PRINT_ANY, "nsid", "nsid %u ", nsid); + print_int(PRINT_ANY, "nsid", "nsid %d ", nsid); if (tb[NETNSA_CURRENT_NSID]) { - current = rta_getattr_u32(tb[NETNSA_CURRENT_NSID]); + current = rta_getattr_s32(tb[NETNSA_CURRENT_NSID]); if (current < 0) print_string(PRINT_ANY, "current-nsid", "current-nsid %s ", "not-assigned"); else - print_uint(PRINT_ANY, "current-nsid", - "current-nsid %u ", current); + print_int(PRINT_ANY, "current-nsid", + "current-nsid %d ", current); } c = netns_map_get_by_nsid(tb[NETNSA_CURRENT_NSID] ? current : nsid); @@ -491,8 +491,7 @@ static int netns_list(int argc, char **argv) if (ipnetns_have_nsid()) { id = get_netnsid_from_name(entry->d_name); if (id >= 0) - print_uint(PRINT_ANY, "id", - " (id: %d)", id); + print_int(PRINT_ANY, "id", " (id: %d)", id); } print_string(PRINT_FP, NULL, "\n", NULL); close_json_object();