mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-07 10:40:28 +09:00
Respect RFC when sending stderr data
http://tools.ietf.org/html/rfc4254#section-5.2 byte SSH_MSG_CHANNEL_EXTENDED_DATA uint32 recipient channel *uint32 data_type_code* string data
This commit is contained in:
@@ -1120,8 +1120,16 @@ int channel_write_common(ssh_channel channel, const void *data,
|
||||
if (buffer_add_u8(session->out_buffer, is_stderr ?
|
||||
SSH2_MSG_CHANNEL_EXTENDED_DATA : SSH2_MSG_CHANNEL_DATA) < 0 ||
|
||||
buffer_add_u32(session->out_buffer,
|
||||
htonl(channel->remote_channel)) < 0 ||
|
||||
buffer_add_u32(session->out_buffer, htonl(effectivelen)) < 0 ||
|
||||
htonl(channel->remote_channel)) < 0) {
|
||||
goto error;
|
||||
}
|
||||
/* stderr message has an extra field */
|
||||
if (is_stderr &&
|
||||
buffer_add_u32(session->out_buffer, htonl(SSH2_EXTENDED_DATA_STDERR)) < 0) {
|
||||
goto error;
|
||||
}
|
||||
/* append payload data */
|
||||
if (buffer_add_u32(session->out_buffer, htonl(effectivelen)) < 0 ||
|
||||
buffer_add_data(session->out_buffer, data, effectivelen) < 0) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user