mirror of
https://github.com/alsa-project/alsa-utils
synced 2024-12-23 07:16:31 +01:00
4c09aaa5c1
A lot of reports that alsamixer crashes in X terminal when the PulseAudio CTL plugin is activated were entered to the tracking systems. I figured that there is a linking clash for the shutdown() function. The shutdown() function in glibc is socket related, but the alsamixer code redefines this function and appearently that under some linking circumstances - which PA client invokes during the runtime dynamic linking - the wrong function is called. This patch, for safety, renames the shutdown() function from alsamixer to app_shutdown(), but it might make sense to figure the real linking culprit to avoid future surprises. Signed-off-by: Jaroslav Kysela <perex@perex.cz>
39 lines
1.1 KiB
C
39 lines
1.1 KiB
C
/*
|
|
* die.c - error handlers
|
|
* Copyright (c) Clemens Ladisch <clemens@ladisch.de>
|
|
*
|
|
* 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, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include "aconfig.h"
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <alsa/asoundlib.h>
|
|
#include "gettext_curses.h"
|
|
#include "mainloop.h"
|
|
#include "die.h"
|
|
|
|
void fatal_error(const char *msg)
|
|
{
|
|
app_shutdown();
|
|
fprintf(stderr, "%s\n", msg);
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
void fatal_alsa_error(const char *msg, int err)
|
|
{
|
|
app_shutdown();
|
|
fprintf(stderr, _("%s: %s\n"), msg, snd_strerror(err));
|
|
exit(EXIT_FAILURE);
|
|
}
|