X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=unix%2Fuxpty.c;h=c3174373ecf1fd058e6a64c73ecabe3d1e034de9;hb=49d2cf19accb059b3b68d1fc2b78e606a578c3e8;hp=b5164e242b3806b5a06a2fafd58f3f3cfa548241;hpb=62b943922e8bb54a43e874cb82f4cfd35b8c9376;p=PuTTY.git diff --git a/unix/uxpty.c b/unix/uxpty.c index b5164e24..c3174373 100644 --- a/unix/uxpty.c +++ b/unix/uxpty.c @@ -24,7 +24,7 @@ #include "putty.h" #include "tree234.h" -#ifdef HAVE_UTMPX_H +#ifndef OMIT_UTMP #include #endif @@ -744,7 +744,9 @@ static const char *pty_init(void *frontend, void **backend_handle, Config *cfg, dup2(slavefd, 1); dup2(slavefd, 2); setsid(); +#ifdef TIOCSCTTY ioctl(slavefd, TIOCSCTTY, 1); +#endif pgrp = getpid(); tcsetpgrp(slavefd, pgrp); setpgid(pgrp, pgrp); @@ -754,15 +756,19 @@ static const char *pty_init(void *frontend, void **backend_handle, Config *cfg, for (i = 3; i < 1024; i++) close(i); { - char term_env_var[10 + sizeof(cfg->termtype)]; - sprintf(term_env_var, "TERM=%s", cfg->termtype); + char *term_env_var = dupprintf("TERM=%s", cfg->termtype); putenv(term_env_var); + /* We mustn't free term_env_var, as putenv links it into the + * environment in place. + */ } #ifndef NOT_X_WINDOWS /* for Mac OS X native compilation */ { - char windowid_env_var[40]; - sprintf(windowid_env_var, "WINDOWID=%ld", windowid); + char *windowid_env_var = dupprintf("WINDOWID=%ld", windowid); putenv(windowid_env_var); + /* We mustn't free windowid_env_var, as putenv links it into the + * environment in place. + */ } #endif {