36 lines
994 B
Diff
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
|
|
|