From d2affc73b5f40a8a53c839f661dac4f4c4547ede Mon Sep 17 00:00:00 2001 From: Adam Tilghman Date: Wed, 16 Nov 2022 16:35:39 -0800 Subject: [PATCH] Insert rebinder at the head of the (possibly empty) LD_PRELOAD pathlist, required for use cases relying on other preloaded libraries e.g. nss_wrapper. --- websockify/websocketproxy.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/websockify/websocketproxy.py b/websockify/websocketproxy.py index c636d54..feed588 100644 --- a/websockify/websocketproxy.py +++ b/websockify/websocketproxy.py @@ -325,8 +325,11 @@ class WebSocketProxy(websockifyserver.WebSockifyServer): self.target_port = sock.getsockname()[1] sock.close() + # Insert rebinder at the head of the (possibly empty) LD_PRELOAD pathlist + ld_preloads = filter(None, [ self.rebinder, os.environ.get("LD_PRELOAD", None) ]) + os.environ.update({ - "LD_PRELOAD": self.rebinder, + "LD_PRELOAD": os.pathsep.join(ld_preloads), "REBIND_OLD_PORT": str(kwargs['listen_port']), "REBIND_NEW_PORT": str(self.target_port)})