um: port_user: Allow setting path to port-helper using UML_PORT_HELPER envvar
authorGlenn Washburn <development@efficientek.com>
Thu, 3 Mar 2022 07:53:31 +0000 (01:53 -0600)
committerRichard Weinberger <richard@nod.at>
Fri, 11 Mar 2022 09:55:38 +0000 (10:55 +0100)
This is useful when the uml-utilities user-space package has not been
installed by the administrator and an unprivileged user wants to be able to
telnet into a UML instance. The user can install the port-helper binary to
a writable path and set UML_PORT_HELPER. Fallback to using hardcoded path to
port-helper if environment variable is not set.

Signed-off-by: Glenn Washburn <development@efficientek.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
arch/um/drivers/port_user.c

index 0625aa42041d89f86733565349183d95a3df955c..3e32351dadad81eb7d6d7a0b0680262eff09f6b1 100644 (file)
@@ -167,10 +167,14 @@ static void port_pre_exec(void *arg)
 int port_connection(int fd, int *socket, int *pid_out)
 {
        int new, err;
+       char *env;
        char *argv[] = { "in.telnetd", "-L",
                         OS_LIB_PATH "/uml/port-helper", NULL };
        struct port_pre_exec_data data;
 
+       if ((env = getenv("UML_PORT_HELPER")))
+               argv[2] = env;
+
        new = accept(fd, NULL, 0);
        if (new < 0)
                return -errno;