1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-11-03 19:37:16 -05:00

Dont manipulate pointer from getenv

Found this when looking to fix bug https://github.com/profanity-im/profanity/issues/1357
Not sure if it is related.

man 3 getenv sais:
```
As  typically implemented, getenv() returns a pointer to a string within
the environment list.  The caller must take  care  not  to  modify  this
string, since that would change the environment of the process.
```
This commit is contained in:
Michael Vetter 2020-06-12 10:23:31 +02:00
parent 74ff38f0bd
commit f1141932fc

View File

@ -170,12 +170,16 @@ files_get_data_path(char *data_base)
static char*
_files_get_xdg_config_home(void)
{
gchar *xdg_config_home = getenv("XDG_CONFIG_HOME");
if (xdg_config_home)
gchar *xdg_config_home_env = getenv("XDG_CONFIG_HOME");
gchar *xdg_config_home = NULL;
if (xdg_config_home_env) {
xdg_config_home = strdup(xdg_config_home_env);
g_strstrip(xdg_config_home);
}
if (xdg_config_home && (strcmp(xdg_config_home, "") != 0)) {
return strdup(xdg_config_home);
return xdg_config_home;
} else {
GString *default_path = g_string_new(getenv("HOME"));
g_string_append(default_path, "/.config");
@ -189,12 +193,16 @@ _files_get_xdg_config_home(void)
static char*
_files_get_xdg_data_home(void)
{
gchar *xdg_data_home = getenv("XDG_DATA_HOME");
if (xdg_data_home)
gchar *xdg_data_home_env = getenv("XDG_DATA_HOME");
gchar *xdg_data_home = NULL;
if (xdg_data_home_env) {
xdg_data_home = strdup(xdg_data_home_env);
g_strstrip(xdg_data_home);
}
if (xdg_data_home && (strcmp(xdg_data_home, "") != 0)) {
return strdup(xdg_data_home);
return xdg_data_home;
} else {
GString *default_path = g_string_new(getenv("HOME"));
g_string_append(default_path, "/.local/share");