diff --git a/libfreerdp/core/orders.c b/libfreerdp/core/orders.c index 744bf3cd6..dc4e51a87 100644 --- a/libfreerdp/core/orders.c +++ b/libfreerdp/core/orders.c @@ -3762,12 +3762,13 @@ static BOOL update_recv_secondary_order(rdpUpdate* update, wStream* s, BYTE flag name, end - start); return FALSE; } - diff = start - end; + diff = end - start; if (diff > 0) { WLog_Print(update->log, WLOG_DEBUG, "SECONDARY_ORDER %s: read %" PRIuz "bytes short, skipping", name, diff); - Stream_Seek(s, diff); + if (!Stream_SafeSeek(s, diff)) + return FALSE; } return rc; }