Skip to content

Commit bfd8870

Browse files
committed
Fixed junk printed in case of internal server error
Fixed bug where trailing junk in a buffer is logged to stderr in case of internal server error during remote file transfer. Ticket: CFE-4507 Changelog: Commit Signed-off-by: Lars Erik Wik <lars.erik.wik@northern.tech>
1 parent 63db2bc commit bfd8870

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

libcfnet/file_stream.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,8 +242,10 @@ static bool ProtocolRecvMessage(SSL *conn, char *msg, size_t *len, bool *eof)
242242
if (err)
243243
{
244244
/* If the error flag is set, then the payload contains an error
245-
* message in the form of a NUL-byte terminated string. */
246-
Log(LOG_LEVEL_ERR, "Remote file stream error: %s", msg);
245+
* message of 'len' bytes. */
246+
assert(*len < sizeof(recv_buffer));
247+
recv_buffer[*len] = '\0'; /* Set terminating null-byte */
248+
Log(LOG_LEVEL_ERR, "Remote file stream error: %s", recv_buffer);
247249
}
248250
}
249251

@@ -276,7 +278,7 @@ static bool ProtocolFlushStream(SSL *conn)
276278
}
277279
}
278280

279-
Log(LOG_LEVEL_ERR, "Remote file stream error: %s", msg);
281+
/* Error is already logged in ProtocolRecvMessage() */
280282
return false;
281283
}
282284

0 commit comments

Comments
 (0)