summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTanu Kaskinen <tanu.kaskinen@linux.intel.com>2014-06-08 16:32:57 +0300
committerTanu Kaskinen <tanu.kaskinen@linux.intel.com>2014-06-24 13:15:43 +0300
commit50042da434b28cf8d7fe39debd3f724c1787d6d6 (patch)
treea1129d072d73c392d3edd9d2befab4feb205fffb
parent71ead4989a9f4781aa645906581be68a4cc2e800 (diff)
core-util: Add pa_append_to_home_dir()
-rw-r--r--src/pulsecore/authkey.c7
-rw-r--r--src/pulsecore/core-util.c17
-rw-r--r--src/pulsecore/core-util.h1
3 files changed, 20 insertions, 5 deletions
diff --git a/src/pulsecore/authkey.c b/src/pulsecore/authkey.c
index 406ce2ab7..c9f5b6ef4 100644
--- a/src/pulsecore/authkey.c
+++ b/src/pulsecore/authkey.c
@@ -142,14 +142,11 @@ static char *normalize_path(const char *fn) {
#else
if (strlen(fn) < 3 || !IsCharAlpha(fn[0]) || fn[1] != ':' || fn[2] != '\\') {
#endif
- char *homedir, *s;
+ char *s;
- if (!(homedir = pa_get_home_dir_malloc()))
+ if (pa_append_to_home_dir(fn, &s) < 0)
return NULL;
- s = pa_sprintf_malloc("%s" PA_PATH_SEP "%s", homedir, fn);
- pa_xfree(homedir);
-
return s;
}
diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c
index afd872f5d..cef9f88bd 100644
--- a/src/pulsecore/core-util.c
+++ b/src/pulsecore/core-util.c
@@ -1653,6 +1653,23 @@ char *pa_get_home_dir_malloc(void) {
return homedir;
}
+int pa_append_to_home_dir(const char *path, char **_r) {
+ char *home_dir;
+
+ pa_assert(path);
+ pa_assert(_r);
+
+ home_dir = pa_get_home_dir_malloc();
+ if (!home_dir) {
+ pa_log("Failed to get home directory.");
+ return -PA_ERR_NOENTITY;
+ }
+
+ *_r = pa_sprintf_malloc("%s" PA_PATH_SEP "%s", home_dir, path);
+ pa_xfree(home_dir);
+ return 0;
+}
+
char *pa_get_binary_name_malloc(void) {
char *t;
size_t allocated = 128;
diff --git a/src/pulsecore/core-util.h b/src/pulsecore/core-util.h
index 9596b9754..9495e6dda 100644
--- a/src/pulsecore/core-util.h
+++ b/src/pulsecore/core-util.h
@@ -138,6 +138,7 @@ char* pa_find_config_file(const char *global, const char *local, const char *env
char *pa_get_runtime_dir(void);
char *pa_get_state_dir(void);
char *pa_get_home_dir_malloc(void);
+int pa_append_to_home_dir(const char *path, char **_r);
char *pa_get_binary_name_malloc(void);
char *pa_runtime_path(const char *fn);
char *pa_state_path(const char *fn, bool prepend_machine_id);