зеркало из https://github.com/Azure/sonic-openssh.git
- djm@cvs.openbsd.org 2014/04/29 13:10:30
[clientloop.c serverloop.c] bz#1818 - don't send channel success/failre replies on channels that have sent a close already; analysis and patch from Simon Tatham; ok markus@
This commit is contained in:
Родитель
633de33b19
Коммит
c589378556
|
@ -31,6 +31,11 @@
|
|||
buffer_get_string_ptr's return should be const to remind
|
||||
callers that futzing with it will futz with the actual buffer
|
||||
contents
|
||||
- djm@cvs.openbsd.org 2014/04/29 13:10:30
|
||||
[clientloop.c serverloop.c]
|
||||
bz#1818 - don't send channel success/failre replies on channels that
|
||||
have sent a close already; analysis and patch from Simon Tatham;
|
||||
ok markus@
|
||||
|
||||
20140430
|
||||
- (dtucker) [defines.h] Define __GNUC_PREREQ__ macro if we don't already
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: clientloop.c,v 1.258 2014/02/02 03:44:31 djm Exp $ */
|
||||
/* $OpenBSD: clientloop.c,v 1.259 2014/04/29 13:10:30 djm Exp $ */
|
||||
/*
|
||||
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
||||
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
||||
|
@ -2054,7 +2054,7 @@ client_input_channel_req(int type, u_int32_t seq, void *ctxt)
|
|||
}
|
||||
packet_check_eom();
|
||||
}
|
||||
if (reply && c != NULL) {
|
||||
if (reply && c != NULL && !(c->flags & CHAN_CLOSE_SENT)) {
|
||||
packet_start(success ?
|
||||
SSH2_MSG_CHANNEL_SUCCESS : SSH2_MSG_CHANNEL_FAILURE);
|
||||
packet_put_int(c->remote_id);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: serverloop.c,v 1.170 2014/02/02 03:44:31 djm Exp $ */
|
||||
/* $OpenBSD: serverloop.c,v 1.171 2014/04/29 13:10:30 djm Exp $ */
|
||||
/*
|
||||
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
||||
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
||||
|
@ -1204,7 +1204,7 @@ server_input_channel_req(int type, u_int32_t seq, void *ctxt)
|
|||
} else if ((c->type == SSH_CHANNEL_LARVAL ||
|
||||
c->type == SSH_CHANNEL_OPEN) && strcmp(c->ctype, "session") == 0)
|
||||
success = session_input_channel_req(c, rtype);
|
||||
if (reply) {
|
||||
if (reply && !(c->flags & CHAN_CLOSE_SENT)) {
|
||||
packet_start(success ?
|
||||
SSH2_MSG_CHANNEL_SUCCESS : SSH2_MSG_CHANNEL_FAILURE);
|
||||
packet_put_int(c->remote_id);
|
||||
|
|
Загрузка…
Ссылка в новой задаче