config-parser: Avoid null dereference when exiting. (case: weston starts without...
authorMun Gwan-gyeong <elongbug@gmail.com>
Mon, 27 May 2013 15:20:04 +0000 (00:20 +0900)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 28 May 2013 19:30:27 +0000 (15:30 -0400)
backtrace:
 (gdb) bt
 #0  0xb7704424 in __kernel_vsyscall ()
 #1  0xb757ddde in raise (sig=5) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:42
 #2  <signal handler called>
 #3  weston_config_destroy (config=0x0) at config-parser.c:508
 #4  0xb75cbc0e in x11_destroy (ec=0x93506b0) at compositor-x11.c:1473
 #5  0x0804e0e9 in main (argc=1, argv=0xbffe5354) at compositor.c:3337

shared/config-parser.c

index eec3e9e..1d88eed 100644 (file)
@@ -505,6 +505,9 @@ weston_config_destroy(struct weston_config *config)
        struct weston_config_section *s, *next_s;
        struct weston_config_entry *e, *next_e;
 
+       if (config == NULL)
+               return;
+
        wl_list_for_each_safe(s, next_s, &config->section_list, link) {
                wl_list_for_each_safe(e, next_e, &s->entry_list, link) {
                        free(e->key);