~mdw
/
sgt
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update to r8614: another -D_FORTIFY_SOURCE=2 fix.
[sgt/putty]
/
unix
/
uxplink.c
diff --git
a/unix/uxplink.c
b/unix/uxplink.c
index
0c34a29
..
55d1663
100644
(file)
--- a/
unix/uxplink.c
+++ b/
unix/uxplink.c
@@
-107,8
+107,8
@@
char *platform_default_s(const char *name)
{
if (!strcmp(name, "TermType"))
return dupstr(getenv("TERM"));
{
if (!strcmp(name, "TermType"))
return dupstr(getenv("TERM"));
- if (!strcmp(name, "UserName"))
- return get_username();
+
if (!strcmp(name, "UserName"))
+ return get_username();
if (!strcmp(name, "SerialLine"))
return dupstr("/dev/ttyS0");
return NULL;
if (!strcmp(name, "SerialLine"))
return dupstr("/dev/ttyS0");
return NULL;
@@
-513,7
+513,8
@@
int signalpipe[2];
void sigwinch(int signum)
{
void sigwinch(int signum)
{
- write(signalpipe[1], "x", 1);
+ if (write(signalpipe[1], "x", 1) <= 0)
+ /* not much we can do about it */;
}
/*
}
/*
@@
-537,7
+538,7
@@
static void usage(void)
printf(" -pgpfp print PGP key fingerprints and exit\n");
printf(" -v show verbose messages\n");
printf(" -load sessname Load settings from saved session\n");
printf(" -pgpfp print PGP key fingerprints and exit\n");
printf(" -v show verbose messages\n");
printf(" -load sessname Load settings from saved session\n");
- printf(" -ssh -telnet -rlogin -raw\n");
+ printf(" -ssh -telnet -rlogin -raw
-serial
\n");
printf(" force use of a particular protocol\n");
printf(" -P port connect to specified port\n");
printf(" -l user connect with specified username\n");
printf(" force use of a particular protocol\n");
printf(" -P port connect to specified port\n");
printf(" -l user connect with specified username\n");
@@
-564,6
+565,8
@@
static void usage(void)
printf(" -N don't start a shell/command (SSH-2 only)\n");
printf(" -nc host:port\n");
printf(" open tunnel in place of session (SSH-2 only)\n");
printf(" -N don't start a shell/command (SSH-2 only)\n");
printf(" -nc host:port\n");
printf(" open tunnel in place of session (SSH-2 only)\n");
+ printf(" -sercfg configuration-string (e.g. 19200,8,n,1,X)\n");
+ printf(" Specify the serial configuration (serial only)\n");
exit(1);
}
exit(1);
}
@@
-584,6
+587,7
@@
int main(int argc, char **argv)
int exitcode;
int errors;
int use_subsystem = 0;
int exitcode;
int errors;
int use_subsystem = 0;
+ int got_host = FALSE;
void *ldisc;
long now;
void *ldisc;
long now;
@@
-657,7
+661,7
@@
int main(int argc, char **argv)
errors = 1;
}
} else if (*p) {
errors = 1;
}
} else if (*p) {
- if (!cfg_launchable(&cfg)) {
+ if (!cfg_launchable(&cfg)
|| !(got_host || loaded_session)
) {
char *q = p;
/*
char *q = p;
/*
@@
-684,6
+688,7
@@
int main(int argc, char **argv)
cfg.port = -1;
strncpy(cfg.host, q, sizeof(cfg.host) - 1);
cfg.host[sizeof(cfg.host) - 1] = '\0';
cfg.port = -1;
strncpy(cfg.host, q, sizeof(cfg.host) - 1);
cfg.host[sizeof(cfg.host) - 1] = '\0';
+ got_host = TRUE;
} else {
char *r, *user, *host;
/*
} else {
char *r, *user, *host;
/*
@@
-732,8
+737,10
@@
int main(int argc, char **argv)
strncpy(cfg.host, host, sizeof(cfg.host) - 1);
cfg.host[sizeof(cfg.host) - 1] = '\0';
cfg.port = default_port;
strncpy(cfg.host, host, sizeof(cfg.host) - 1);
cfg.host[sizeof(cfg.host) - 1] = '\0';
cfg.port = default_port;
+ got_host = TRUE;
} else {
cfg = cfg2;
} else {
cfg = cfg2;
+ loaded_session = TRUE;
}
}
}
}
@@
-780,7
+787,7
@@
int main(int argc, char **argv)
if (errors)
return 1;
if (errors)
return 1;
- if (!cfg_launchable(&cfg)) {
+ if (!cfg_launchable(&cfg)
|| !(got_host || loaded_session)
) {
usage();
}
usage();
}
@@
-1030,7
+1037,9
@@
int main(int argc, char **argv)
if (FD_ISSET(signalpipe[0], &rset)) {
char c[1];
struct winsize size;
if (FD_ISSET(signalpipe[0], &rset)) {
char c[1];
struct winsize size;
- read(signalpipe[0], c, 1); /* ignore its value; it'll be `x' */
+ if (read(signalpipe[0], c, 1) <= 0)
+ /* ignore error */;
+ /* ignore its value; it'll be `x' */
if (ioctl(0, TIOCGWINSZ, (void *)&size) >= 0)
back->size(backhandle, size.ws_col, size.ws_row);
}
if (ioctl(0, TIOCGWINSZ, (void *)&size) >= 0)
back->size(backhandle, size.ws_col, size.ws_row);
}