summaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
authorAndrea Claudi <aclaudi@redhat.com>2022-01-28 11:53:58 +0100
committerStephen Hemminger <stephen@networkplumber.org>2022-01-31 14:37:25 -0800
commit07012a1f4e4555927a494513b5449950f78072da (patch)
tree7a974c162e5eea913ff60d4f25c6f1191fb4d384 /misc
parent03b4de0b47bb302d8b8525ed1a6e40fe6d827107 (diff)
downloadiproute2-07012a1f4e4555927a494513b5449950f78072da.tar.gz
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 <aclaudi@redhat.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Diffstat (limited to 'misc')
-rw-r--r--misc/ss.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/misc/ss.c b/misc/ss.c
index b39f63fe..f7d36914 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) {