Add cleanup() to do free(locks) + XCloseDisplay()

This commit is contained in:
Quentin Rameau 2016-09-01 13:46:19 +02:00 committed by Markus Teich
parent 137f0076c2
commit 1f66885fbf

16
slock.c
View file

@ -230,6 +230,13 @@ unlockscreen(Display *dpy, Lock *lock)
free(lock); free(lock);
} }
static void
cleanup(Display *dpy)
{
free(locks);
XCloseDisplay(dpy);
}
static Lock * static Lock *
lockscreen(Display *dpy, int screen) lockscreen(Display *dpy, int screen)
{ {
@ -349,8 +356,7 @@ main(int argc, char **argv) {
/* did we actually manage to lock anything? */ /* did we actually manage to lock anything? */
if (nlocks == 0) { if (nlocks == 0) {
/* nothing to protect */ /* nothing to protect */
free(locks); cleanup(dpy);
XCloseDisplay(dpy);
return 1; return 1;
} }
@ -358,8 +364,7 @@ main(int argc, char **argv) {
if (argc > 0) { if (argc > 0) {
switch (fork()) { switch (fork()) {
case -1: case -1:
free(locks); cleanup(dpy);
XCloseDisplay(dpy);
die("slock: fork failed: %s\n", strerror(errno)); die("slock: fork failed: %s\n", strerror(errno));
case 0: case 0:
if (close(ConnectionNumber(dpy)) < 0) if (close(ConnectionNumber(dpy)) < 0)
@ -382,8 +387,7 @@ main(int argc, char **argv) {
for (s = 0; s < nscreens; s++) for (s = 0; s < nscreens; s++)
unlockscreen(dpy, locks[s]); unlockscreen(dpy, locks[s]);
free(locks); cleanup(dpy);
XCloseDisplay(dpy);
return 0; return 0;
} }