From 6438edb7b95b4ae5440ebdac8296c024b58a6508 Mon Sep 17 00:00:00 2001 From: columbarius Date: Thu, 17 Jun 2021 09:10:09 +0200 Subject: [PATCH] config: handle missing HOME env variable gracefully Fixes: https://github.com/emersion/xdg-desktop-portal-wlr/issues/149 --- src/core/config.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/core/config.c b/src/core/config.c index ff905ee..9722594 100644 --- a/src/core/config.c +++ b/src/core/config.c @@ -106,9 +106,12 @@ static char *config_path(const char *prefix, const char *filename) { static char *get_config_path(void) { const char *home = getenv("HOME"); - size_t size_fallback = 1 + strlen(home) + strlen("/.config"); - char *config_home_fallback = calloc(size_fallback, sizeof(char)); - snprintf(config_home_fallback, size_fallback, "%s/.config", home); + char *config_home_fallback = NULL; + if (home != NULL && home[0] != '\0') { + size_t size_fallback = 1 + strlen(home) + strlen("/.config"); + config_home_fallback = calloc(size_fallback, sizeof(char)); + snprintf(config_home_fallback, size_fallback, "%s/.config", home); + } const char *config_home = getenv("XDG_CONFIG_HOME"); if (config_home == NULL || config_home[0] == '\0') {