PulseAudio Marge Bot pushed to branch master at PulseAudio / pulseaudio


Commits:
a238a581 by Patrick Gaskin at 2021-05-03T10:58:45+00:00
cli-command: Replace config dir with toplevel for .include on win32

This makes the behaviour match pa_{open,find}_config_file by
replacing PA_DEFAULT_CONFIG_DIR with the toplevel.

This fixes the hardcoded paths for {default,system}.pa.d introduced
in 45abd0b43c7901b375afcba6d9b0e1cca2f349a8 (!361).

Part-of: 
<https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/545>

- - - - -


1 changed file:

- src/pulsecore/cli-command.c


Changes:

=====================================
src/pulsecore/cli-command.c
=====================================
@@ -2084,20 +2084,34 @@ int pa_cli_command_execute_line_stateful(pa_core *c, 
const char *s, pa_strbuf *b
 
             if (l == sizeof(META_INCLUDE)-1 && !strncmp(cs, META_INCLUDE, l)) {
                 struct stat st;
-                const char *filename = cs+l+strspn(cs+l, whitespace);
+                const char *fn = cs+l+strspn(cs+l, whitespace);
+
+                char *filename;
+#ifdef OS_IS_WIN32
+                if (strncmp(fn, PA_DEFAULT_CONFIG_DIR, 
strlen(PA_DEFAULT_CONFIG_DIR)) == 0)
+                    filename = pa_sprintf_malloc("%s" PA_PATH_SEP "etc" 
PA_PATH_SEP "pulse" PA_PATH_SEP "%s",
+                                            pa_win32_get_toplevel(NULL),
+                                            fn + 
strlen(PA_DEFAULT_CONFIG_DIR));
+                else
+#endif
+                filename = pa_xstrdup(fn);
 
                 if (stat(filename, &st) < 0) {
                     pa_log_warn("stat('%s'): %s", filename, 
pa_cstrerror(errno));
-                    if (*fail)
+                    if (*fail) {
+                        pa_xfree(filename);
                         return -1;
+                    }
                 } else {
                     if (S_ISDIR(st.st_mode)) {
                         DIR *d;
 
                         if (!(d = opendir(filename))) {
                             pa_log_warn("Failed to read '%s': %s", filename, 
pa_cstrerror(errno));
-                            if (*fail)
+                            if (*fail) {
+                                pa_xfree(filename);
                                 return -1;
+                            }
                         } else {
                             unsigned i, count;
                             char **sorted_files;
@@ -2143,14 +2157,18 @@ int pa_cli_command_execute_line_stateful(pa_core *c, 
const char *s, pa_strbuf *b
                                     pa_xfree(sorted_files[i]);
                                 }
                                 pa_xfree(sorted_files);
-                                if (failed)
+                                if (failed) {
+                                    pa_xfree(filename);
                                     return -1;
+                                }
                             }
                         }
                     } else if (pa_cli_command_execute_file(c, filename, buf, 
fail) < 0 && *fail) {
+                        pa_xfree(filename);
                         return -1;
                     }
                 }
+                pa_xfree(filename);
             } else if (l == sizeof(META_IFEXISTS)-1 && !strncmp(cs, 
META_IFEXISTS, l)) {
                 if (!ifstate) {
                     pa_strbuf_printf(buf, "Meta command %s is not valid in 
this context\n", cs);



View it on GitLab: 
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/commit/a238a58186ed7f68676d8ef17285a962bd013361

-- 
View it on GitLab: 
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/commit/a238a58186ed7f68676d8ef17285a962bd013361
You're receiving this email because of your account on gitlab.freedesktop.org.


_______________________________________________
pulseaudio-commits mailing list
pulseaudio-commits@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-commits

Reply via email to