This is an automated email from the git hooks/post-receive script. fsateler pushed a commit to annotated tag debian/5.0-11 in repository pulseaudio.
commit 9439f312ad8ecade01547f339896c07a33059360 Author: Felipe Sateler <[email protected]> Date: Tue Aug 26 00:27:29 2014 -0400 Fix crash when main cannot be found in patch util-Try-finding-out-application-name-using-dladdr Closes: #758556, 758531 --- debian/changelog | 8 +++ ...finding-out-application-name-using-dladdr.patch | 57 ++++++++++++++-------- 2 files changed, 44 insertions(+), 21 deletions(-) diff --git a/debian/changelog b/debian/changelog index 713e58c..d8d409e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +pulseaudio (5.0-11) UNRELEASED; urgency=medium + + * Fix crash when main cannot be found in patch + util-Try-finding-out-application-name-using-dladdr + Closes: #758556, 758531 + + -- Felipe Sateler <[email protected]> Tue, 26 Aug 2014 00:22:19 -0400 + pulseaudio (5.0-10) experimental; urgency=medium * patch: try finding out binary name using dladdr diff --git a/debian/patches/util-Try-finding-out-application-name-using-dladdr.patch b/debian/patches/util-Try-finding-out-application-name-using-dladdr.patch index 36c37b6..139239d 100644 --- a/debian/patches/util-Try-finding-out-application-name-using-dladdr.patch +++ b/debian/patches/util-Try-finding-out-application-name-using-dladdr.patch @@ -1,13 +1,15 @@ -From 139358150c8ba7f40d9412147d6ee0824005fc4b Mon Sep 17 00:00:00 2001 -From: Felipe Sateler <[email protected]> -Date: Thu, 14 Aug 2014 00:43:00 -0400 -Subject: [PATCH] util: Try finding out application name using dladdr if - available +commit 704c96985be104396b86f6b2c0a96827b9d90501 +Author: Felipe Sateler <[email protected]> +Date: Thu Aug 14 00:43:00 2014 -0400 ---- - configure.ac | 2 ++ - src/pulse/util.c | 18 ++++++++++++++++++ - 2 files changed, 20 insertions(+) + util: Try finding out application name using dladdr if available + + This fixes getting the binary name in the Hurd, or any other port using + the GNU C library, but only in the case where the library is directly + linked to. Opening with dlopen will not work. + + Change since last version: use a weak reference to main, so that we + don't crash when main cannot be found. --- a/configure.ac +++ b/configure.ac @@ -22,7 +24,18 @@ Subject: [PATCH] util: Try finding out application name using dladdr if # External libraries # --- a/src/pulse/util.c +++ b/src/pulse/util.c -@@ -32,6 +32,7 @@ +@@ -24,6 +24,10 @@ + #include <config.h> + #endif + ++#ifndef _GNU_SOURCE ++#define _GNU_SOURCE 1 ++#endif ++ + #include <errno.h> + #include <limits.h> + #include <stdio.h> +@@ -32,6 +36,7 @@ #include <time.h> #include <unistd.h> #include <sys/types.h> @@ -30,30 +43,32 @@ Subject: [PATCH] util: Try finding out application name using dladdr if #ifdef HAVE_PWD_H #include <pwd.h> -@@ -64,6 +65,10 @@ +@@ -64,6 +69,10 @@ #include "util.h" -+#ifdef HAVE_DLADDR -+extern int main(int, char*[]); ++#if defined(HAVE_DLADDR) && defined(PA_GCC_WEAKREF) ++static int _main() PA_GCC_WEAKREF(main); +#endif + char *pa_get_user_name(char *s, size_t l) { const char *p; char *name = NULL; -@@ -205,6 +210,19 @@ char *pa_get_binary_name(char *s, size_t +@@ -205,6 +214,21 @@ char *pa_get_binary_name(char *s, size_t } } #endif + -+#ifdef HAVE_DLADDR ++#if defined(HAVE_DLADDR) && defined(PA_GCC_WEAKREF) + { -+ Dl_info DLInfo; -+ int err = dladdr(&main, &DLInfo); -+ if (err != 0) { -+ char *p = pa_realpath(DLInfo.dli_fname); -+ if (p) { -+ return p; ++ Dl_info info; ++ if(_main) { ++ int err = dladdr(&_main, &info); ++ if (err != 0) { ++ char *p = pa_realpath(info.dli_fname); ++ if (p) { ++ return p; ++ } + } + } + } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-pulseaudio/pulseaudio.git _______________________________________________ pkg-pulseaudio-devel mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-pulseaudio-devel

