process-util: add a flag for retaining dlopen()-ability
While blocking dlopen() in child generally makes sense, it does also lead to misery - in the very case of extension/cred refreshing it then enforces loading of libcryptsetup/libacl in pid1, which are otherwise never used. Let's add a flag to opt out hence, but still prohibit it in namespace_fork/enter().
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
#include <sys/mount.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "dlfcn-util.h"
|
||||
#include "errno-util.h"
|
||||
#include "fd-util.h"
|
||||
#include "fileio.h"
|
||||
@@ -217,6 +218,9 @@ int namespace_open(
|
||||
int namespace_enter(int pidns_fd, int mntns_fd, int netns_fd, int userns_fd, int root_fd) {
|
||||
int r;
|
||||
|
||||
/* Block dlopen() now, to avoid us inadvertently loading shared library from another namespace */
|
||||
block_dlopen();
|
||||
|
||||
if (userns_fd >= 0) {
|
||||
/* Can't setns to your own userns, since then you could escalate from non-root to root in
|
||||
* your own namespace, so check if namespaces are equal before attempting to enter. */
|
||||
|
||||
Reference in New Issue
Block a user