diff -up openssh-7.4p1/session.c.update-pw openssh-7.4p1/session.c --- openssh-7.4p1/session.c.update-pw 2019-03-04 14:10:57.287054645 +0100 +++ openssh-7.4p1/session.c 2019-03-04 14:12:39.259997218 +0100 @@ -1522,9 +1522,18 @@ do_child(Session *s, const char *command char **env; char *argv[ARGV_MAX]; const char *shell, *shell0; - struct passwd *pw = s->pw; + struct passwd *pw = NULL; int r = 0; + /* Update the users passwd structure after successful login */ + pw = getpwuid(s->pw->pw_uid); + if (pw != NULL) { + free(s->pw); + s->pw = pw; + } else { + pw = s->pw; + } + /* remove hostkey from the child's memory */ destroy_sensitive_data(); packet_clear_keys();