summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAhmed S. Darwish <darwish.07@gmail.com>2016-04-22 21:48:26 +0200
committerTanu Kaskinen <tanuk@iki.fi>2016-04-24 18:16:34 +0300
commit26d5b6d199b66028ee10187da50d78303ce8d36e (patch)
tree8e0b1080d66dab9a30fa3e2e33b868b5d6363c75
parentdcbe79bd630b6176eac7214834234218de744f2a (diff)
downloadpulseaudio-26d5b6d199b66028ee10187da50d78303ce8d36e.tar.gz
protocol-native: Disable srbchannel for setups without SCM_CREDENTIALS
srbchannel needs fd passing. Otherwise we get the following error for systems without SCM_CREDENTIALS support: Code should not be reached at pulsecore/pstream-util.c:95, function pa_pstream_send_tagstruct_with_fds(). Aborting. [[ The root cause is that we define HAVE_CREDS only if SCM_CREDENTIALS is defined, but SCM_CREDENTIALS is a Linux-specific symbol. Thus HAVE_CREDS is always disabled on Solaris. And since pulse couples the non-portable creds passing support with the portable fd passing one, through _35_ places where HAVE_CREDS is used, a real fix needs a PA redesign -- assuming that latency on Solaris is something people care about. ]] BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=94339 Signed-off-by: Ahmed S. Darwish <darwish.07@gmail.com>
-rw-r--r--src/pulsecore/protocol-native.c5
-rw-r--r--src/pulsecore/pstream-util.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/src/pulsecore/protocol-native.c b/src/pulsecore/protocol-native.c
index ffa5c4dcd..569758884 100644
--- a/src/pulsecore/protocol-native.c
+++ b/src/pulsecore/protocol-native.c
@@ -2604,6 +2604,11 @@ static void setup_srbchannel(pa_native_connection *c) {
pa_tagstruct *t;
int fdlist[2];
+#ifndef HAVE_CREDS
+ pa_log_debug("Disabling srbchannel, reason: No fd passing support");
+ return;
+#endif
+
if (!c->options->srbchannel) {
pa_log_debug("Disabling srbchannel, reason: Must be enabled by module parameter");
return;
diff --git a/src/pulsecore/pstream-util.c b/src/pulsecore/pstream-util.c
index 505f0cf56..d0d6c662a 100644
--- a/src/pulsecore/pstream-util.c
+++ b/src/pulsecore/pstream-util.c
@@ -90,8 +90,8 @@ void pa_pstream_send_tagstruct_with_creds(pa_pstream *p, pa_tagstruct *t, const
pa_pstream_send_tagstruct_with_ancil_data(p, t, NULL);
}
-void pa_pstream_send_tagstruct_with_fds(pa_pstream *p, pa_tagstruct *t, int nfd, const int *fds,
- bool close_fds) {
+void PA_GCC_NORETURN pa_pstream_send_tagstruct_with_fds(pa_pstream *p, pa_tagstruct *t, int nfd, const int *fds,
+ bool close_fds) {
pa_assert_not_reached();
}