diff --git a/patch/xresources.c b/patch/xresources.c index 5617b1a..acdad4d 100644 --- a/patch/xresources.c +++ b/patch/xresources.c @@ -22,7 +22,8 @@ resource_load(XrmDatabase db, char *name, enum resource_type rtype, void *dst) switch (rtype) { case STRING: - *sdst = ret.addr; + /* Note: this leaks memory */ + *sdst = strdup(ret.addr); break; case INTEGER: *idst = strtoul(ret.addr, NULL, 10); @@ -47,8 +48,13 @@ config_init(Display *dpy) return; db = XrmGetStringDatabase(resm); + if (!db) + return; + for (p = resources; p < resources + LEN(resources); p++) resource_load(db, p->name, p->type, p->dst); + + XrmDestroyDatabase(db); } #if XRESOURCES_RELOAD_PATCH