From: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Fri, 3 Nov 2017 14:31:37 +0000 (+0100)
Subject: fix a possible free of a uninitialize variable in paste()
X-Git-Url: https://git.xinqibao.xyz/dmenu.git/commitdiff_plain/1cabeda5505dcc35d4d2ca2a09151a7c449fb401?hp=41379f7c39e6aa0a17d7807b22b49ea148f5b0fa

fix a possible free of a uninitialize variable in paste()
---

diff --git a/dmenu.c b/dmenu.c
index 91330f1..eae5685 100644
--- a/dmenu.c
+++ b/dmenu.c
@@ -467,10 +467,12 @@ paste(void)
 	Atom da;
 
 	/* we have been given the current selection, now insert it into input */
-	XGetWindowProperty(dpy, win, utf8, 0, (sizeof text / 4) + 1, False,
-	                   utf8, &da, &di, &dl, &dl, (unsigned char **)&p);
-	insert(p, (q = strchr(p, '\n')) ? q - p : (ssize_t)strlen(p));
-	XFree(p);
+	if (XGetWindowProperty(dpy, win, utf8, 0, (sizeof text / 4) + 1, False,
+	                   utf8, &da, &di, &dl, &dl, (unsigned char **)&p)
+	    == Success && p) {
+		insert(p, (q = strchr(p, '\n')) ? q - p : (ssize_t)strlen(p));
+		XFree(p);
+	}
 	drawmenu();
 }