MLS context can be transferred by TCP, not only by unix socket --- cups/scheduler/client.c 2019-04-05 13:09:49.166885653 +0000 +++ cups/scheduler/client.c 2019-04-05 13:10:04.790358141 +0000 @@ -287,12 +287,9 @@ */ if ((con->auid = client_pid_to_auid(cr.pid)) == -1) { - httpClose(con->http); - cupsdLogClient(con, CUPSD_LOG_ERROR, + cupsdLogClient(con, CUPSD_LOG_INFO, "Unable to determine client auid for client pid=%d", cr.pid); - free(con); - return; } cupsdLogClient(con, CUPSD_LOG_INFO, "peer's pid=%d, uid=%d, gid=%d, auid=%d", @@ -308,10 +308,8 @@ */ if (getpeercon(httpGetFd(con->http), &con->scon)) { - httpClose(con->http); + cupsdSetString(&con->scon, UNKNOWN_SL); cupsdLogClient(con, CUPSD_LOG_ERROR, "getpeercon() failed"); - free(con); - return; } cupsdLogClient(con, CUPSD_LOG_INFO, "client context=%s", con->scon);