Add TERM iff TERM not defined in container when podman exec -t

Fixes: https://github.com/containers/podman/issues/20334

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:
Daniel J Walsh
2023-10-18 10:21:30 -04:00
parent d4086f5ac4
commit b72bb11629
5 changed files with 75 additions and 0 deletions

View File

@ -1219,3 +1219,20 @@ func ConvertTimeout(timeout int) uint {
}
return uint(timeout)
}
// ExecAddTERM when container does not have a TERM environment variable and
// caller wants a tty, then leak the existing TERM environment into
// the container.
func ExecAddTERM(existingEnv []string, execEnvs map[string]string) {
if _, ok := execEnvs["TERM"]; ok {
return
}
for _, val := range existingEnv {
if strings.HasPrefix(val, "TERM=") {
return
}
}
execEnvs["TERM"] = "xterm"
}