Bug 3379

Summary: Config parser only allows SetEnv once
Product: Portable OpenSSH Reporter: Florian Streibelt <bugzilla>
Component: sshAssignee: Assigned to nobody <unassigned-bugs>
Status: NEW ---    
Severity: normal CC: bugzilla
Priority: P5    
Version: 8.8p1   
Hardware: All   
OS: All   
Attachments:
Description Flags
working proof of concept patch none

Description Florian Streibelt 2022-01-11 10:25:50 AEDT
When using SetEnv in the .ssh/config it can only be used once.

Every additional entry will be ignored.

looking at readconf.c:1758 I see that options->num_setenv is being checked to be != 0 and then continuing.

This leads to these configurations NOT to work as intended:

SetEnv TZ=UTC
SetEnv TERM=xterm

Here only TZ will be set.

Also when SetEnv is being used globally, it cannot be used later inside a Host definition to specify additional variables or change them.
Comment 1 Florian Streibelt 2022-01-11 11:38:19 AEDT
Created attachment 3564 [details]
working proof of concept patch

Just a quick and dirty proof of concept, that allows overwriting the environment in a host definition and also using multiple SetEnv entries to set different env vars.