summaryrefslogtreecommitdiff
path: root/debian/patches/Fix_glibc_program_invocation_name_pointer_overlap.diff
diff options
context:
space:
mode:
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.diff46
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