diff options
Diffstat (limited to 'debian/patches/Fix_glibc_program_invocation_name_pointer_overlap.diff')
-rw-r--r-- | debian/patches/Fix_glibc_program_invocation_name_pointer_overlap.diff | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/debian/patches/Fix_glibc_program_invocation_name_pointer_overlap.diff b/debian/patches/Fix_glibc_program_invocation_name_pointer_overlap.diff deleted file mode 100644 index 5f1868272..000000000 --- a/debian/patches/Fix_glibc_program_invocation_name_pointer_overlap.diff +++ /dev/null @@ -1,46 +0,0 @@ -Description: Avoid SIGABRT if program_invocation_short_name is a pointer within progam_invocation_short_name -Bug: https://github.com/elogind/elogind/issues/92 - ---- a/src/shared/musl_missing.c -+++ b/src/shared/musl_missing.c -@@ -34,9 +34,14 @@ - - static void elogind_free_program_name(void) { - -- if (program_invocation_name && (program_invocation_name != program_arg_name) && strlen(program_invocation_name)) -+ if (program_invocation_name && -+ (program_invocation_name != program_arg_name) && -+ strlen(program_invocation_name)) - program_invocation_name = mfree(program_invocation_name); -- if (program_invocation_short_name && (program_invocation_short_name != program_arg_name) && strlen(program_invocation_short_name)) -+ if (program_invocation_short_name && -+ (program_invocation_short_name != program_arg_name) && -+ (program_invocation_short_name + strlen(program_invocation_short_name) != program_invocation_name + strlen(program_invocation_name)) -+ && strlen(program_invocation_short_name)) - program_invocation_short_name = mfree(program_invocation_short_name); - } - ---- a/src/basic/process-util.c -+++ b/src/basic/process-util.c -@@ -10,6 +10,7 @@ - #include <stdio.h> - #include <stdio_ext.h> - #include <stdlib.h> -+#include <libgen.h> - #include <string.h> - #include <sys/mman.h> - #include <sys/mount.h> -@@ -306,8 +307,12 @@ - - k = strlen(program_invocation_name); - strncpy(program_invocation_name, name, k); -- if (l > k) -+ if (l > k) { - truncated = true; -+ program_invocation_short_name = NULL; -+ } -+ else -+ program_invocation_short_name = program_invocation_name + strlen(dirname(program_invocation_name)) -1; - } - - /* Third step, completely replace the argv[] array the kernel maintains for us. This requires privileges, but |