aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiltjo Posthuma <hiltjo@codemadness.org>2017-11-03 15:31:37 +0100
committerHiltjo Posthuma <hiltjo@codemadness.org>2017-11-03 21:07:02 +0100
commit1cabeda5505dcc35d4d2ca2a09151a7c449fb401 (patch)
treead202761d53c00ee527e3acec24180a04d606ff6
parent41379f7c39e6aa0a17d7807b22b49ea148f5b0fa (diff)
downloaddmenu-1cabeda5505dcc35d4d2ca2a09151a7c449fb401.tar.gz
dmenu-1cabeda5505dcc35d4d2ca2a09151a7c449fb401.tar.bz2
dmenu-1cabeda5505dcc35d4d2ca2a09151a7c449fb401.zip
fix a possible free of a uninitialize variable in paste()
-rw-r--r--dmenu.c10
1 files changed, 6 insertions, 4 deletions
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();
}