From 2f20a8ebdb5aed3146f366360762d8963efe8d82 Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Sat, 19 Apr 2014 13:53:11 +0200 Subject: [PATCH] Revert "Handle Unix domain socket connections from outside our namespace" This reverts commit 9754d56e9b21bfe89fc18f47987d6bef491b8521. It causes a crash in PID1: Apr 19 13:49:32 lon systemd[1]: Code should not be reached 'Unhandled socket type.' at src/core/socket.c:684, function instance_from_socket(). Aborting. Apr 19 13:49:32 lon systemd[1]: Caught , dumped core as pid 336. Apr 19 13:49:32 lon systemd[1]: Freezing execution. --- src/core/socket.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/core/socket.c b/src/core/socket.c index d57e7701cae..7c18a2b75c1 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -663,21 +663,17 @@ static int instance_from_socket(int fd, unsigned nr, char **instance) { int k; k = getpeercred(fd, &ucred); - if (k >= 0) { - if (asprintf(&r, - "%u-"PID_FMT"-"UID_FMT, - nr, ucred.pid, ucred.uid) < 0) - return -ENOMEM; - } else if (k == -ENODATA) { - /* This handles the case where somebody is - * connecting from another pid/uid namespace - * (e.g. from outside of our container). */ - if (asprintf(&r, - "%u-unknown", - nr) < 0) - return -ENOMEM; - } else + if (k < 0) return k; + + if (asprintf(&r, + "%u-%lu-%lu", + nr, + (unsigned long) ucred.pid, + (unsigned long) ucred.uid) < 0) + return -ENOMEM; + + break; } default: