|
@@ -5579,7 +5579,7 @@ static void ssh1_msg_port_open(Ssh ssh, struct Packet *pktin)
|
|
|
ssh_pkt_getstring(pktin, &host, &hostsize);
|
|
ssh_pkt_getstring(pktin, &host, &hostsize);
|
|
|
port = ssh_pkt_getuint32(pktin);
|
|
port = ssh_pkt_getuint32(pktin);
|
|
|
|
|
|
|
|
- pf.dhost = dupprintf("%.*s", hostsize, host);
|
|
|
|
|
|
|
+ pf.dhost = dupprintf("%.*s", hostsize, NULLTOEMPTY(host));
|
|
|
pf.dport = port;
|
|
pf.dport = port;
|
|
|
pfp = find234(ssh->rportfwds, &pf, NULL);
|
|
pfp = find234(ssh->rportfwds, &pf, NULL);
|
|
|
|
|
|
|
@@ -6062,7 +6062,7 @@ static void ssh1_msg_debug(Ssh ssh, struct Packet *pktin)
|
|
|
int msglen;
|
|
int msglen;
|
|
|
|
|
|
|
|
ssh_pkt_getstring(pktin, &msg, &msglen);
|
|
ssh_pkt_getstring(pktin, &msg, &msglen);
|
|
|
- logeventf(ssh, "Remote debug message: %.*s", msglen, msg);
|
|
|
|
|
|
|
+ logeventf(ssh, "Remote debug message: %.*s", msglen, NULLTOEMPTY(msg));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
static void ssh1_msg_disconnect(Ssh ssh, struct Packet *pktin)
|
|
static void ssh1_msg_disconnect(Ssh ssh, struct Packet *pktin)
|
|
@@ -6072,7 +6072,8 @@ static void ssh1_msg_disconnect(Ssh ssh, struct Packet *pktin)
|
|
|
int msglen;
|
|
int msglen;
|
|
|
|
|
|
|
|
ssh_pkt_getstring(pktin, &msg, &msglen);
|
|
ssh_pkt_getstring(pktin, &msg, &msglen);
|
|
|
- bombout(("Server sent disconnect message:\n\"%.*s\"", msglen, msg));
|
|
|
|
|
|
|
+ bombout(("Server sent disconnect message:\n\"%.*s\"",
|
|
|
|
|
+ msglen, NULLTOEMPTY(msg)));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
static void ssh_msg_ignore(Ssh ssh, struct Packet *pktin)
|
|
static void ssh_msg_ignore(Ssh ssh, struct Packet *pktin)
|
|
@@ -8285,7 +8286,8 @@ static void ssh2_msg_channel_open_failure(Ssh ssh, struct Packet *pktin)
|
|
|
reason_code = 0; /* ensure reasons[reason_code] in range */
|
|
reason_code = 0; /* ensure reasons[reason_code] in range */
|
|
|
ssh_pkt_getstring(pktin, &reason_string, &reason_length);
|
|
ssh_pkt_getstring(pktin, &reason_string, &reason_length);
|
|
|
logeventf(ssh, "Forwarded connection refused by server: %s [%.*s]",
|
|
logeventf(ssh, "Forwarded connection refused by server: %s [%.*s]",
|
|
|
- reasons[reason_code], reason_length, reason_string);
|
|
|
|
|
|
|
+ reasons[reason_code], reason_length,
|
|
|
|
|
+ NULLTOEMPTY(reason_string));
|
|
|
|
|
|
|
|
pfd_close(c->u.pfd.pf);
|
|
pfd_close(c->u.pfd.pf);
|
|
|
} else if (c->type == CHAN_ZOMBIE) {
|
|
} else if (c->type == CHAN_ZOMBIE) {
|
|
@@ -8581,9 +8583,7 @@ static void ssh2_msg_channel_open(Ssh ssh, struct Packet *pktin)
|
|
|
char *addrstr;
|
|
char *addrstr;
|
|
|
|
|
|
|
|
ssh_pkt_getstring(pktin, &peeraddr, &peeraddrlen);
|
|
ssh_pkt_getstring(pktin, &peeraddr, &peeraddrlen);
|
|
|
- addrstr = snewn(peeraddrlen+1, char);
|
|
|
|
|
- memcpy(addrstr, peeraddr, peeraddrlen);
|
|
|
|
|
- addrstr[peeraddrlen] = '\0';
|
|
|
|
|
|
|
+ addrstr = dupprintf("%.*s", peeraddrlen, NULLTOEMPTY(peeraddr));
|
|
|
peerport = ssh_pkt_getuint32(pktin);
|
|
peerport = ssh_pkt_getuint32(pktin);
|
|
|
|
|
|
|
|
logeventf(ssh, "Received X11 connect request from %s:%d",
|
|
logeventf(ssh, "Received X11 connect request from %s:%d",
|
|
@@ -8618,13 +8618,14 @@ static void ssh2_msg_channel_open(Ssh ssh, struct Packet *pktin)
|
|
|
char *shost;
|
|
char *shost;
|
|
|
int shostlen;
|
|
int shostlen;
|
|
|
ssh_pkt_getstring(pktin, &shost, &shostlen);/* skip address */
|
|
ssh_pkt_getstring(pktin, &shost, &shostlen);/* skip address */
|
|
|
- pf.shost = dupprintf("%.*s", shostlen, shost);
|
|
|
|
|
|
|
+ pf.shost = dupprintf("%.*s", shostlen, NULLTOEMPTY(shost));
|
|
|
pf.sport = ssh_pkt_getuint32(pktin);
|
|
pf.sport = ssh_pkt_getuint32(pktin);
|
|
|
ssh_pkt_getstring(pktin, &peeraddr, &peeraddrlen);
|
|
ssh_pkt_getstring(pktin, &peeraddr, &peeraddrlen);
|
|
|
peerport = ssh_pkt_getuint32(pktin);
|
|
peerport = ssh_pkt_getuint32(pktin);
|
|
|
realpf = find234(ssh->rportfwds, &pf, NULL);
|
|
realpf = find234(ssh->rportfwds, &pf, NULL);
|
|
|
logeventf(ssh, "Received remote port %s:%d open request "
|
|
logeventf(ssh, "Received remote port %s:%d open request "
|
|
|
- "from %s:%d", pf.shost, pf.sport, peeraddr, peerport);
|
|
|
|
|
|
|
+ "from %.*s:%d", pf.shost, pf.sport,
|
|
|
|
|
+ peeraddrlen, NULLTOEMPTY(peeraddr), peerport);
|
|
|
sfree(pf.shost);
|
|
sfree(pf.shost);
|
|
|
|
|
|
|
|
if (realpf == NULL) {
|
|
if (realpf == NULL) {
|
|
@@ -10305,7 +10306,7 @@ static void do_ssh2_authconn(Ssh ssh, const unsigned char *in, int inlen,
|
|
|
s->cur_prompt->to_server = TRUE;
|
|
s->cur_prompt->to_server = TRUE;
|
|
|
s->cur_prompt->name = dupstr("New SSH password");
|
|
s->cur_prompt->name = dupstr("New SSH password");
|
|
|
s->cur_prompt->instruction =
|
|
s->cur_prompt->instruction =
|
|
|
- dupprintf("%.*s", prompt_len, prompt);
|
|
|
|
|
|
|
+ dupprintf("%.*s", prompt_len, NULLTOEMPTY(prompt));
|
|
|
s->cur_prompt->instr_reqd = TRUE;
|
|
s->cur_prompt->instr_reqd = TRUE;
|
|
|
/*
|
|
/*
|
|
|
* There's no explicit requirement in the protocol
|
|
* There's no explicit requirement in the protocol
|
|
@@ -10749,13 +10750,13 @@ static void ssh2_msg_disconnect(Ssh ssh, struct Packet *pktin)
|
|
|
logevent(buf);
|
|
logevent(buf);
|
|
|
sfree(buf);
|
|
sfree(buf);
|
|
|
buf = dupprintf("Disconnection message text: %.*s",
|
|
buf = dupprintf("Disconnection message text: %.*s",
|
|
|
- msglen, msg);
|
|
|
|
|
|
|
+ msglen, NULLTOEMPTY(msg));
|
|
|
logevent(buf);
|
|
logevent(buf);
|
|
|
bombout(("Server sent disconnect message\ntype %d (%s):\n\"%.*s\"",
|
|
bombout(("Server sent disconnect message\ntype %d (%s):\n\"%.*s\"",
|
|
|
reason,
|
|
reason,
|
|
|
(reason > 0 && reason < lenof(ssh2_disconnect_reasons)) ?
|
|
(reason > 0 && reason < lenof(ssh2_disconnect_reasons)) ?
|
|
|
ssh2_disconnect_reasons[reason] : "unknown",
|
|
ssh2_disconnect_reasons[reason] : "unknown",
|
|
|
- msglen, msg));
|
|
|
|
|
|
|
+ msglen, NULLTOEMPTY(msg)));
|
|
|
sfree(buf);
|
|
sfree(buf);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -10769,7 +10770,7 @@ static void ssh2_msg_debug(Ssh ssh, struct Packet *pktin)
|
|
|
ssh2_pkt_getbool(pktin);
|
|
ssh2_pkt_getbool(pktin);
|
|
|
ssh_pkt_getstring(pktin, &msg, &msglen);
|
|
ssh_pkt_getstring(pktin, &msg, &msglen);
|
|
|
|
|
|
|
|
- logeventf(ssh, "Remote debug message: %.*s", msglen, msg);
|
|
|
|
|
|
|
+ logeventf(ssh, "Remote debug message: %.*s", msglen, NULLTOEMPTY(msg));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
static void ssh2_msg_transport(Ssh ssh, struct Packet *pktin)
|
|
static void ssh2_msg_transport(Ssh ssh, struct Packet *pktin)
|