diff options
author | Toomas Soome <tsoome@me.com> | 2018-11-22 12:22:30 +0200 |
---|---|---|
committer | Toomas Soome <tsoome@me.com> | 2019-12-02 23:13:20 +0200 |
commit | 69d9b1c5b0824b6e4feadaf289d68d945f0fbe6f (patch) | |
tree | 439b945162024f03a0e8cc2edac1980e43f1d878 /usr/src/lib/libproc/common | |
parent | ec38b3f5fb92a39a55897ec0e3e4eeb0e84fefcc (diff) | |
download | illumos-joyent-69d9b1c5b0824b6e4feadaf289d68d945f0fbe6f.tar.gz |
11984 libproc: passing argument 2 to restrict-qualified parameter aliases with argument 1
Reviewed by: Andy Fiddaman <omnios@citrus-it.co.uk>
Reviewed by: Robert Mustacchi <rm@fingolfin.org>
Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr/src/lib/libproc/common')
-rw-r--r-- | usr/src/lib/libproc/common/Pzone.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/usr/src/lib/libproc/common/Pzone.c b/usr/src/lib/libproc/common/Pzone.c index 3c4999bbe4..d2562a2a79 100644 --- a/usr/src/lib/libproc/common/Pzone.c +++ b/usr/src/lib/libproc/common/Pzone.c @@ -795,9 +795,14 @@ Pfindmap(struct ps_prochandle *P, map_info_t *mptr, char *s, size_t n) /* Try /proc first to get the real object name */ if ((Pstate(P) != PS_DEAD) && (mptr->map_pmap.pr_mapname[0] != '\0')) { - (void) snprintf(buf, sizeof (buf), "%s/%d/path/%s", + char path[PATH_MAX]; + + len = snprintf(path, sizeof (path), "%s/%d/path/%s", procfs_path, (int)P->pid, mptr->map_pmap.pr_mapname); - if ((len = readlink(buf, buf, sizeof (buf))) > 0) { + if (len < 0 || (size_t)len >= sizeof (path)) + return (NULL); + + if ((len = readlink(path, buf, sizeof (buf))) > 0) { buf[len] = '\0'; (void) Plofspath(buf, buf, sizeof (buf)); (void) strlcpy(s, buf, n); |