From e58d33e8d8d8071e72c26e239e3828dcfa7d3b48 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Fri, 21 Feb 2020 10:39:04 +0200 Subject: [PATCH] Terminate PW_KEY_SEC_LABEL key with '\0' The socket call does not terminate the string with '\0' so we have to use the length explicitly. Signed-off-by: Pantelis Antoniou --- src/modules/module-protocol-native.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/modules/module-protocol-native.c b/src/modules/module-protocol-native.c index 14226a6e7..22179c2fb 100644 --- a/src/modules/module-protocol-native.c +++ b/src/modules/module-protocol-native.c @@ -369,7 +369,9 @@ static struct client_data *client_new(struct server *s, int fd) if (getsockopt(fd, SOL_SOCKET, SO_PEERSEC, buffer, &len) < 0) { pw_log_warn("server %p: no peersec: %m", s); } else { - pw_properties_setf(props, PW_KEY_SEC_LABEL, "%s", buffer); + /* buffer is not null terminated, must use length explicitly */ + pw_properties_setf(props, PW_KEY_SEC_LABEL, "%.*s", + (int)len, buffer); } #endif