From a6341b904c08b1feb51e264ab487d1f125222a10 Mon Sep 17 00:00:00 2001 From: netblue30 Date: Mon, 25 Sep 2017 07:38:01 -0400 Subject: disable DBus activation in firecfg --- src/firecfg/sound.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/firecfg/sound.c (limited to 'src/firecfg/sound.c') diff --git a/src/firecfg/sound.c b/src/firecfg/sound.c new file mode 100644 index 000000000..9dfb305cd --- /dev/null +++ b/src/firecfg/sound.c @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2014-2017 Firejail Authors + * + * This file is part of firejail project + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#include "firecfg.h" + +void sound(void) { + struct passwd *pw = getpwuid(getuid()); + if (!pw) { + goto errexit; + } + char *home = pw->pw_dir; + if (!home) { + goto errexit; + } + + // the input file is /etc/pulse/client.conf + FILE *fpin = fopen("/etc/pulse/client.conf", "r"); + if (!fpin) { + fprintf(stderr, "PulseAudio is not available on this platform, there is nothing to fix...\n"); + return; + } + + // the dest is PulseAudio user config file + char *fname; + if (asprintf(&fname, "%s/.config/pulse/client.conf", home) == -1) + errExit("asprintf"); + FILE *fpout = fopen(fname, "w"); + free(fname); + if (!fpout) + goto errexit; + + // copy default config + char buf[MAX_BUF]; + while (fgets(buf, MAX_BUF, fpin)) + fputs(buf, fpout); + + // disable shm + fprintf(fpout, "\nenable-shm = no\n"); + fclose(fpin); + fclose(fpout); + printf("PulseAudio configured, please logout and login back again\n"); + return; + +errexit: + fprintf(stderr, "Error: cannot configure sound file\n"); + exit(1); +} + -- cgit v1.2.3-54-g00ecf