From f5a8da4f628285111ed423d42a4b1db925fdaba2 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Wed, 8 Mar 2023 08:29:34 +0100 Subject: [PATCH] [core,rdstls] ensure stream length on empy return --- libfreerdp/core/rdstls.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libfreerdp/core/rdstls.c b/libfreerdp/core/rdstls.c index cbd0ddea0..8d489c767 100644 --- a/libfreerdp/core/rdstls.c +++ b/libfreerdp/core/rdstls.c @@ -138,6 +138,9 @@ static SSIZE_T rdstls_write_string(wStream* s, const char* str) { /* Write unicode null */ Stream_Write_UINT16(s, 2); + if (!Stream_EnsureRemainingCapacity(s, 2)) + return -1; + Stream_Write_UINT16(s, 0); return (SSIZE_T)(Stream_GetPosition(s) - pos); } @@ -162,8 +165,12 @@ static BOOL rdstls_write_data(wStream* s, UINT32 length, const BYTE* data) if (!data) { + return -1; /* Write unicode null */ Stream_Write_UINT16(s, 2); + if (!Stream_EnsureRemainingCapacity(s, 2)) + return -1; + Stream_Write_UINT16(s, 0); return TRUE; }