aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Rameau <quinq@fifth.space>2016-09-01 13:46:19 +0200
committerMarkus Teich <markus.teich@stusta.mhn.de>2016-09-02 10:50:32 +0200
commit1f66885fbf36c726b7615060d3c98cbf74218d13 (patch)
tree6efbc92aa7523c9d2cf1c846b606c7a0c64d2f3e
parent137f0076c2986306109d637599b885bdaf92cd58 (diff)
Add cleanup() to do free(locks) + XCloseDisplay()
-rw-r--r--slock.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/slock.c b/slock.c
index 9ec2f71..4980325 100644
--- a/slock.c
+++ b/slock.c
@@ -230,6 +230,13 @@ unlockscreen(Display *dpy, Lock *lock)
230 free(lock); 230 free(lock);
231} 231}
232 232
233static void
234cleanup(Display *dpy)
235{
236 free(locks);
237 XCloseDisplay(dpy);
238}
239
233static Lock * 240static Lock *
234lockscreen(Display *dpy, int screen) 241lockscreen(Display *dpy, int screen)
235{ 242{
@@ -349,8 +356,7 @@ main(int argc, char **argv) {
349 /* did we actually manage to lock anything? */ 356 /* did we actually manage to lock anything? */
350 if (nlocks == 0) { 357 if (nlocks == 0) {
351 /* nothing to protect */ 358 /* nothing to protect */
352 free(locks); 359 cleanup(dpy);
353 XCloseDisplay(dpy);
354 return 1; 360 return 1;
355 } 361 }
356 362
@@ -358,8 +364,7 @@ main(int argc, char **argv) {
358 if (argc > 0) { 364 if (argc > 0) {
359 switch (fork()) { 365 switch (fork()) {
360 case -1: 366 case -1:
361 free(locks); 367 cleanup(dpy);
362 XCloseDisplay(dpy);
363 die("slock: fork failed: %s\n", strerror(errno)); 368 die("slock: fork failed: %s\n", strerror(errno));
364 case 0: 369 case 0:
365 if (close(ConnectionNumber(dpy)) < 0) 370 if (close(ConnectionNumber(dpy)) < 0)
@@ -382,8 +387,7 @@ main(int argc, char **argv) {
382 for (s = 0; s < nscreens; s++) 387 for (s = 0; s < nscreens; s++)
383 unlockscreen(dpy, locks[s]); 388 unlockscreen(dpy, locks[s]);
384 389
385 free(locks); 390 cleanup(dpy);
386 XCloseDisplay(dpy);
387 391
388 return 0; 392 return 0;
389} 393}