Matej Habrnal 3989c8
From 3c4bbdee2059525fafdd6b32a6c85cf2358febe4 Mon Sep 17 00:00:00 2001
Matej Habrnal 3989c8
From: Matej Habrnal <mhabrnal@redhat.com>
Matej Habrnal 3989c8
Date: Wed, 10 Feb 2016 14:53:44 +0100
Matej Habrnal 3989c8
Subject: [PATCH] ccpp: drop %e from the core_pattern
Matej Habrnal 3989c8
Matej Habrnal 3989c8
The argument is no longer need and it must be placed either at the end
Matej Habrnal 3989c8
of the command or enclosed with '' as it can contain white space.
Matej Habrnal 3989c8
Matej Habrnal 3989c8
Threads can have an arbitrary name:
Matej Habrnal 3989c8
    man 3 pthread_setname_np
Matej Habrnal 3989c8
Matej Habrnal 3989c8
Signed-off-by: Jakub Filak <jfilak@redhat.com>
Matej Habrnal 3989c8
---
Matej Habrnal 3989c8
 src/hooks/abrt-hook-ccpp.c          | 16 ++++++++--------
Matej Habrnal 3989c8
 src/hooks/abrt-install-ccpp-hook.in | 12 +-----------
Matej Habrnal 3989c8
 2 files changed, 9 insertions(+), 19 deletions(-)
Matej Habrnal 3989c8
Matej Habrnal 3989c8
diff --git a/src/hooks/abrt-hook-ccpp.c b/src/hooks/abrt-hook-ccpp.c
Matej Habrnal 3989c8
index 58d9c28..ac60840 100644
Matej Habrnal 3989c8
--- a/src/hooks/abrt-hook-ccpp.c
Matej Habrnal 3989c8
+++ b/src/hooks/abrt-hook-ccpp.c
Matej Habrnal 3989c8
@@ -142,9 +142,9 @@ static struct dump_dir *dd;
Matej Habrnal 3989c8
  * %u - uid
Matej Habrnal 3989c8
  * %g - gid
Matej Habrnal 3989c8
  * %t - UNIX time of dump
Matej Habrnal 3989c8
- * %e - executable filename
Matej Habrnal 3989c8
- * %i - crash thread tid
Matej Habrnal 3989c8
  * %P - global pid
Matej Habrnal 3989c8
+ * %I - crash thread tid
Matej Habrnal 3989c8
+ * %e - executable filename (can contain white spaces)
Matej Habrnal 3989c8
  * %% - output one "%"
Matej Habrnal 3989c8
  */
Matej Habrnal 3989c8
 /* Hook must be installed with exactly the same sequence of %c specifiers.
Matej Habrnal 3989c8
@@ -559,9 +559,9 @@ int main(int argc, char** argv)
Matej Habrnal 3989c8
 
Matej Habrnal 3989c8
     if (argc < 8)
Matej Habrnal 3989c8
     {
Matej Habrnal 3989c8
-        /* percent specifier:         %s   %c              %p  %u  %g  %t   %e          %P         %i*/
Matej Habrnal 3989c8
-        /* argv:                  [0] [1]  [2]             [3] [4] [5] [6]  [7]         [8]        [9]*/
Matej Habrnal 3989c8
-        error_msg_and_die("Usage: %s SIGNO CORE_SIZE_LIMIT PID UID GID TIME BINARY_NAME GLOBAL_PID [TID]", argv[0]);
Matej Habrnal 3989c8
+        /* percent specifier:         %s   %c              %p  %u  %g  %t   %P         %T        */
Matej Habrnal 3989c8
+        /* argv:                  [0] [1]  [2]             [3] [4] [5] [6]  [7]        [8]       */
Matej Habrnal 3989c8
+        error_msg_and_die("Usage: %s SIGNO CORE_SIZE_LIMIT PID UID GID TIME GLOBAL_PID GLOBAL_TID", argv[0]);
Matej Habrnal 3989c8
     }
Matej Habrnal 3989c8
 
Matej Habrnal 3989c8
     /* Not needed on 2.6.30.
Matej Habrnal 3989c8
@@ -604,11 +604,11 @@ int main(int argc, char** argv)
Matej Habrnal 3989c8
         else
Matej Habrnal 3989c8
             free(s);
Matej Habrnal 3989c8
     }
Matej Habrnal 3989c8
-    const char *global_pid_str = argv[8];
Matej Habrnal 3989c8
-    pid_t pid = xatoi_positive(argv[8]);
Matej Habrnal 3989c8
+    const char *global_pid_str = argv[7];
Matej Habrnal 3989c8
+    pid_t pid = xatoi_positive(argv[7]);
Matej Habrnal 3989c8
 
Matej Habrnal 3989c8
     pid_t tid = -1;
Matej Habrnal 3989c8
-    const char *tid_str = argv[9];
Matej Habrnal 3989c8
+    const char *tid_str = argv[8];
Matej Habrnal 3989c8
     if (tid_str)
Matej Habrnal 3989c8
     {
Matej Habrnal 3989c8
         tid = xatoi_positive(tid_str);
Matej Habrnal 3989c8
diff --git a/src/hooks/abrt-install-ccpp-hook.in b/src/hooks/abrt-install-ccpp-hook.in
Matej Habrnal 3989c8
index 707c57d..660c209 100755
Matej Habrnal 3989c8
--- a/src/hooks/abrt-install-ccpp-hook.in
Matej Habrnal 3989c8
+++ b/src/hooks/abrt-install-ccpp-hook.in
Matej Habrnal 3989c8
@@ -11,9 +11,7 @@ SAVED_PATTERN_DIR="@VAR_RUN@/abrt"
Matej Habrnal 3989c8
 SAVED_PATTERN_FILE="@VAR_RUN@/abrt/saved_core_pattern"
Matej Habrnal 3989c8
 HOOK_BIN="@libexecdir@/abrt-hook-ccpp"
Matej Habrnal 3989c8
 # Must match percent_specifiers[] order in abrt-hook-ccpp.c:
Matej Habrnal 3989c8
-PATTERN="|$HOOK_BIN %s %c %p %u %g %t %e %P %I"
Matej Habrnal 3989c8
-# Same, but with bogus "executable name" parameter
Matej Habrnal 3989c8
-PATTERN1="|$HOOK_BIN %s %c %p %u %g %t e %P %I"
Matej Habrnal 3989c8
+PATTERN="|$HOOK_BIN %s %c %p %u %g %t %P %I"
Matej Habrnal 3989c8
 
Matej Habrnal 3989c8
 # core_pipe_limit specifies how many dump_helpers can run at the same time
Matej Habrnal 3989c8
 # 0 - means unlimited, but it's not guaranteed that /proc/<pid> of crashing
Matej Habrnal 3989c8
@@ -39,14 +37,6 @@ start() {
Matej Habrnal 3989c8
 	cur=`cat "$PATTERN_FILE"`
Matej Habrnal 3989c8
 	cur_first=`printf "%s" "$cur" | sed 's/ .*//'`
Matej Habrnal 3989c8
 
Matej Habrnal 3989c8
-	# Is there a %e (executable name) in old pattern anywhere?
Matej Habrnal 3989c8
-	if test x"${cur#*%e}" = x"${cur}"; then
Matej Habrnal 3989c8
-		# No. Can use PATTERN with less risk of overflow
Matej Habrnal 3989c8
-		# on expansion (executable names can be LONG).
Matej Habrnal 3989c8
-		# Overflow would cause kernel to abort coredump. BAD.
Matej Habrnal 3989c8
-		PATTERN="$PATTERN1"
Matej Habrnal 3989c8
-	fi
Matej Habrnal 3989c8
-
Matej Habrnal 3989c8
 	$verbose && printf "cur:'%s'\n" "$cur"
Matej Habrnal 3989c8
 	# Is it already installed?
Matej Habrnal 3989c8
 	if test x"$cur_first" != x"|$HOOK_BIN"; then   # no
Matej Habrnal 3989c8
-- 
Matej Habrnal 3989c8
2.5.0
Matej Habrnal 3989c8