diff --git a/src/main.c b/src/main.c index 43efb3c2..21265446 100644 --- a/src/main.c +++ b/src/main.c @@ -21,6 +21,10 @@ #include #include "shmlog.h" +#ifdef I3_ASAN_ENABLED +#include +#endif + #include "sd-daemon.h" /* The original value of RLIMIT_CORE when i3 was started. We need to restore @@ -551,6 +555,9 @@ int main(int argc, char *argv[]) { xcb_generic_error_t *error = xcb_request_check(conn, cookie); if (error != NULL) { ELOG("Another window manager seems to be running (X error %d)\n", error->error_code); +#ifdef I3_ASAN_ENABLED + __lsan_do_leak_check(); +#endif return 1; } diff --git a/src/regex.c b/src/regex.c index 296b91dd..8f039157 100644 --- a/src/regex.c +++ b/src/regex.c @@ -38,6 +38,7 @@ struct regex *regex_new(const char *pattern) { } ELOG("PCRE regular expression compilation failed at %d: %s\n", offset, error); + regex_free(re); return NULL; } re->extra = pcre_study(re->regex, 0, &error);