From 9b1bb4a69190aaecafcbcafd97f6b42811c6e14b Mon Sep 17 00:00:00 2001 From: niuwanli 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