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