mirror of
https://github.com/apache/nuttx.git
synced 2026-06-02 09:38:37 +08:00
graphics/vncserver: Fix buffer overflow
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
This commit is contained in:
@@ -250,7 +250,7 @@ static size_t vnc_copy32(FAR struct vnc_session_s *session,
|
|||||||
srcleft = (FAR lfb_color_t *)((uintptr_t)srcleft + RFB_STRIDE);
|
srcleft = (FAR lfb_color_t *)((uintptr_t)srcleft + RFB_STRIDE);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (size_t)((uintptr_t)srcleft - (uintptr_t)update->rect[0].data);
|
return (size_t)((uintptr_t)dest - (uintptr_t)update->rect[0].data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -357,8 +357,16 @@ int vnc_raw(FAR struct vnc_session_s *session, FAR struct nxgl_rect_s *rect)
|
|||||||
deststride = maxwidth;
|
deststride = maxwidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
destwidth = deststride / bytesperpixel;
|
DEBUGASSERT(CONFIG_VNCSERVER_UPDATE_BUFSIZE >
|
||||||
destheight = CONFIG_VNCSERVER_UPDATE_BUFSIZE / deststride;
|
SIZEOF_RFB_FRAMEBUFFERUPDATE_S(SIZEOF_RFB_RECTANGE_S(0)));
|
||||||
|
|
||||||
|
destwidth = deststride / bytesperpixel;
|
||||||
|
|
||||||
|
/* Reserve some space for message header */
|
||||||
|
|
||||||
|
destheight = (CONFIG_VNCSERVER_UPDATE_BUFSIZE -
|
||||||
|
SIZEOF_RFB_FRAMEBUFFERUPDATE_S(SIZEOF_RFB_RECTANGE_S(0))) /
|
||||||
|
deststride;
|
||||||
|
|
||||||
if (destheight > srcheight)
|
if (destheight > srcheight)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user