From: Mike Yuan Date: Sun, 2 Mar 2025 13:35:59 +0000 (+0100) Subject: run: send out TERM= only if actually set X-Git-Tag: v258-rc1~1206^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=20a78028522b95bb85ef8ad30d8e2b078252df17;p=thirdparty%2Fsystemd.git run: send out TERM= only if actually set Follow-up for 4d6eb6441a5332c285e35907894c7d4f3463ba64 --- diff --git a/src/run/run.c b/src/run/run.c index 21d7a94e29f..5dd1e9f9b6d 100644 --- a/src/run/run.c +++ b/src/run/run.c @@ -1233,8 +1233,7 @@ static int transient_kill_set_properties(sd_bus_message *m) { } static int transient_service_set_properties(sd_bus_message *m, const char *pty_path, int pty_fd) { - int send_term = false; /* tri-state */ - int r; + int r, send_term; /* tri-state */ /* We disable environment expansion on the server side via ExecStartEx=:. * ExecStartEx was added relatively recently (v243), and some bugs were fixed only later. @@ -1313,15 +1312,16 @@ static int transient_service_set_properties(sd_bus_message *m, const char *pty_p return bus_log_create_error(r); send_term = -1; - } + } else + send_term = false; if (send_term != 0) { const char *e; - /* Propagate $TERM only if we are actually connected to a TTY */ + /* Propagate $TERM only if we are actually connected to a TTY */ if (isatty_safe(STDIN_FILENO) || isatty_safe(STDOUT_FILENO) || isatty_safe(STDERR_FILENO)) { e = getenv("TERM"); - send_term = true; + send_term = !!e; } else /* If we are not connected to any TTY ourselves, then send TERM=dumb, but only if we * really need to (because we actually allocated a TTY for the service) */