From 00b67f55727bc0944c3266e2b875440da132ce4b Mon Sep 17 00:00:00 2001 From: zhailiangliang Date: Wed, 21 Sep 2022 10:30:38 +0800 Subject: [PATCH] Fix potential memory leak in GLES_CreateTexture CVE: CVE-2022-4743 Upstream-Status: Backport [https://github.com/libsdl-org/SDL/commit/00b67f55727bc0944c3266e2b875440da132ce4b.patch] Signed-off-by: Ranjitsinh Rathod --- src/render/opengles/SDL_render_gles.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/render/opengles/SDL_render_gles.c b/src/render/opengles/SDL_render_gles.c index a5fbab309eda..ba08a46e2805 100644 --- a/src/render/opengles/SDL_render_gles.c +++ b/src/render/opengles/SDL_render_gles.c @@ -359,6 +359,9 @@ GLES_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture) renderdata->glGenTextures(1, &data->texture); result = renderdata->glGetError(); if (result != GL_NO_ERROR) { + if (texture->access == SDL_TEXTUREACCESS_STREAMING) { + SDL_free(data->pixels); + } SDL_free(data); return GLES_SetError("glGenTextures()", result); } @@ -387,6 +390,9 @@ GLES_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture) result = renderdata->glGetError(); if (result != GL_NO_ERROR) { + if (texture->access == SDL_TEXTUREACCESS_STREAMING) { + SDL_free(data->pixels); + } SDL_free(data); return GLES_SetError("glTexImage2D()", result); }