um: port_user: Allow setting path to port-helper using UML_PORT_HELPER envvar

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>
This commit is contained in:
Glenn Washburn 2022-03-03 01:53:31 -06:00 committed by Richard Weinberger
parent 6e8f4b7012
commit db8109a8bb
1 changed files with 4 additions and 0 deletions

View File

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