socket-util: make sure SO_PEERSEC returned string is always NUL terminated

it's not entirely clear to me if the manual NUL termination is
necessary, but let's better be safe than sorry, since this is apparently
up to the LSMs, and I am not sure we can trust them all.

A lot of other code (such as dbus-broker) patches in the NUL byte, hence
let's be rather safe-then-sorry, it's trivial after all.
This commit is contained in:
Lennart Poettering
2023-12-21 15:21:23 +01:00
parent a6076499db
commit 989740ebc4
+3 -1
View File
@@ -907,8 +907,10 @@ int getpeersec(int fd, char **ret) {
if (!s)
return -ENOMEM;
if (getsockopt(fd, SOL_SOCKET, SO_PEERSEC, s, &n) >= 0)
if (getsockopt(fd, SOL_SOCKET, SO_PEERSEC, s, &n) >= 0) {
s[n] = 0;
break;
}
if (errno != ERANGE)
return -errno;