From 397554c9df86ec7d06e017b877573859c60c258f Mon Sep 17 00:00:00 2001 From: Kamalesh Babulal Date: Wed, 27 Jul 2022 12:43:37 -0600 Subject: [PATCH] api: null terminate readlink buffer in cgroup_get_procname_from_procfs() Fix readlink buffer null termination warning, reported by Coverity tool: CID 258273 (#2 of 2): String not null terminated (STRING_NULL). string_null: Passing unterminated string buf to strdup, which expects a null-terminated string. As per the man pages (man 2 readlink): "readlink() does not append a null byte to buf. It will (silently) truncate the contents (to a length of bufsiz characters), in case the buffer is too small to hold all of the contents." Explicitly null terminate the buffer passed to readlink() in cgroup_get_procname_from_procfs() Signed-off-by: Kamalesh Babulal Signed-off-by: Tom Hromatka --- src/api.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/api.c b/src/api.c index caa9b3b6..b4e5ca1d 100644 --- a/src/api.c +++ b/src/api.c @@ -5382,6 +5382,9 @@ int cgroup_get_procname_from_procfs(pid_t pid, char **procname) *procname = pname_status; return 0; } + /* readlink doesn't append a null */ + buf[FILENAME_MAX - 1] = '\0'; + if (!strncmp(pname_status, basename(buf), TASK_COMM_LEN - 1)) { /* * The taken process name from /proc//status is -- 2.47.2