aboutsummaryrefslogtreecommitdiffstats
path: root/src/xrdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xrdb.c')
-rw-r--r--src/xrdb.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/xrdb.c b/src/xrdb.c
index 6a16e3260bd..63f06738b98 100644
--- a/src/xrdb.c
+++ b/src/xrdb.c
@@ -426,24 +426,22 @@ get_environ_db (void)
426{ 426{
427 XrmDatabase db; 427 XrmDatabase db;
428 char *p; 428 char *p;
429 char *path = 0, *home = 0; 429 char *path = 0;
430 const char *host;
431 430
432 if ((p = getenv ("XENVIRONMENT")) == NULL) 431 if ((p = getenv ("XENVIRONMENT")) == NULL)
433 { 432 {
434 home = gethomedir (); 433 static char const xdefaults[] = ".Xdefaults-";
435 host = get_system_name (); 434 char *home = gethomedir ();
436 path = (char *) xmalloc (strlen (home) 435 char const *host = get_system_name ();
437 + sizeof (".Xdefaults-") 436 ptrdiff_t pathsize = strlen (home) + sizeof xdefaults + strlen (host);
438 + strlen (host)); 437 path = (char *) xrealloc (home, pathsize);
439 sprintf (path, "%s%s%s", home, ".Xdefaults-", host); 438 strcat (strcat (path, xdefaults), host);
440 p = path; 439 p = path;
441 } 440 }
442 441
443 db = XrmGetFileDatabase (p); 442 db = XrmGetFileDatabase (p);
444 443
445 xfree (path); 444 xfree (path);
446 xfree (home);
447 445
448 return db; 446 return db;
449} 447}