From: Andrea Claudi Date: Fri, 28 Jan 2022 10:53:58 +0000 (+0100) Subject: ss: use freecon() instead of free() when appropriate X-Git-Tag: v5.17.0~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=07012a1f4e4555927a494513b5449950f78072da;p=thirdparty%2Fiproute2.git ss: use freecon() instead of free() when appropriate According to SELinux API, when resources are allocated using getpidcon() of getfilecon(), they should be freed using freecon(). This commit makes ss use freecon() where appropriate, defining a stub function executing a free() useful when iproute2 is compiled without SELinux support. Signed-off-by: Andrea Claudi Signed-off-by: Stephen Hemminger --- diff --git a/misc/ss.c b/misc/ss.c index b39f63fe3..f7d369142 100644 --- a/misc/ss.c +++ b/misc/ss.c @@ -97,6 +97,11 @@ static int security_get_initial_context(char *name, char **context) *context = NULL; return -1; } + +static void freecon(char *context) +{ + free(context); +} #endif int preferred_family = AF_UNSPEC; @@ -618,7 +623,7 @@ static void user_ent_hash_build(void) snprintf(name + nameoff, sizeof(name) - nameoff, "%d/fd/", pid); pos = strlen(name); if ((dir1 = opendir(name)) == NULL) { - free(pid_context); + freecon(pid_context); continue; } @@ -667,9 +672,9 @@ static void user_ent_hash_build(void) } user_ent_add(ino, p, pid, fd, pid_context, sock_context); - free(sock_context); + freecon(sock_context); } - free(pid_context); + freecon(pid_context); closedir(dir1); } closedir(dir); @@ -4725,7 +4730,7 @@ static int netlink_show_one(struct filter *f, getpidcon(pid, &pid_context); out(" proc_ctx=%s", pid_context ? : "unavailable"); - free(pid_context); + freecon(pid_context); } if (show_details) {