[client] egl: check for invalid desktop render dimensions

This commit is contained in:
Geoffrey McRae 2021-10-20 11:17:29 +11:00
parent 70a751b58d
commit edc9825c04
3 changed files with 8 additions and 2 deletions

View file

@ -352,6 +352,9 @@ bool egl_desktopRender(EGL_Desktop * desktop, unsigned int outputWidth,
const float scaleX, const float scaleY, enum EGL_DesktopScaleType scaleType,
LG_RendererRotate rotate, const struct DamageRects * rects)
{
if (outputWidth == 0 && outputHeight == 0)
DEBUG_FATAL("outputWidth || outputHeight == 0");
enum EGL_TexStatus status;
if ((status = egl_textureProcess(desktop->texture)) != EGL_TEX_STATUS_OK)
{

View file

@ -1008,7 +1008,7 @@ static bool egl_render(LG_Renderer * renderer, LG_RendererRotate rotate,
}
++this->overlayHistoryIdx;
if (this->start)
if (this->start && this->destRect.w > 0 && this->destRect.h > 0)
{
if (egl_desktopRender(this->desktop,
this->destRect.w, this->destRect.h,

View file

@ -133,7 +133,7 @@ static void loadPresetList(struct EGL_PostProcess * this)
this->activePreset = -1;
return;
fail:
fail:
free(this->presetDir);
this->presetDir = NULL;
if (dir)
@ -585,6 +585,9 @@ bool egl_postProcessRun(EGL_PostProcess * this, EGL_Texture * tex,
EGL_DesktopRects * rects, int desktopWidth, int desktopHeight,
unsigned int targetX, unsigned int targetY)
{
if (targetX == 0 && targetY == 0)
DEBUG_FATAL("targetX || targetY == 0");
EGL_Filter * lastFilter = NULL;
unsigned int sizeX, sizeY;