tFree vd.options in case of failure - spoon - dwm status utility (2f30 fork)
(HTM) git clone git://src.adamsgaard.dk/spoon
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
(DIR) commit 1c2f9b46506ce4a7dd2f32856b09f89dbe46ad93
(DIR) parent f1a0d8b0257f582bbff7e326c395455af4742f0f
(HTM) Author: sin <sin@2f30.org>
Date: Sun, 15 May 2016 13:31:10 +0100
Free vd.options in case of failure
Diffstat:
M spoon.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
---
(DIR) diff --git a/spoon.c b/spoon.c
t@@ -109,11 +109,14 @@ xkblayoutread(char *buf, size_t len)
return -1;
}
XkbGetState(dpy, XkbUseCoreKbd, &state);
- XkbRF_GetNamesProp(dpy, &tmp, &vd);
+ if (XkbRF_GetNamesProp(dpy, &tmp, &vd) == 0){
+ ret = -1;
+ goto out0;
+ }
str = strdup(vd.layout);
if (str == NULL) {
ret = -1;
- goto out0;
+ goto out1;
}
tok = strtok(str, ",");
for (i = 0; i < state.group; i++) {
t@@ -121,12 +124,14 @@ xkblayoutread(char *buf, size_t len)
if (tok == NULL) {
warnx("cannot extract layout");
ret = -1;
- goto out1;
+ goto out2;
}
}
strlcpy(buf, tok, len);
-out1:
+out2:
free(str);
+out1:
+ XFree(vd.options);
out0:
XCloseDisplay(dpy);
return ret;