xorg-x11-server/fix-segfault-if-CreateGC-failed-in-XaceHook.patch
2024-02-05 11:03:54 +08:00

36 lines
994 B
Diff

From 9b1bb4a69190aaecafcbcafd97f6b42811c6e14b Mon Sep 17 00:00:00 2001
From: niuwanli <niuwanli@cysoftware.com.cn>
Date: Wed, 24 Jan 2024 17:14:47 +0800
Subject: [PATCH] Fix the FreeGC call funcs not checked
---
dix/gc.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/dix/gc.c b/dix/gc.c
index 4ccbd3b..80b375b 100644
--- a/dix/gc.c
+++ b/dix/gc.c
@@ -770,14 +770,16 @@ FreeGC(void *value, XID gid)
GCPtr pGC = (GCPtr) value;
CloseFont(pGC->font, (Font) 0);
- (*pGC->funcs->DestroyClip) (pGC);
+ if (pGC->funcs)
+ (*pGC->funcs->DestroyClip) (pGC);
if (!pGC->tileIsPixel)
(*pGC->pScreen->DestroyPixmap) (pGC->tile.pixmap);
if (pGC->stipple)
(*pGC->pScreen->DestroyPixmap) (pGC->stipple);
- (*pGC->funcs->DestroyGC) (pGC);
+ if (pGC->funcs)
+ (*pGC->funcs->DestroyGC) (pGC);
if (pGC->dash != DefaultDash)
free(pGC->dash);
dixFreeObjectWithPrivates(pGC, PRIVATE_GC);
--
2.33.0