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