Blame SOURCES/0196-rhtsupport-Discourage-users-from-reporting-in-non-Re.patch

28bab8
From 64b9c39ffada27c51a202426378499dc5f278ceb Mon Sep 17 00:00:00 2001
28bab8
From: Matej Habrnal <mhabrnal@redhat.com>
28bab8
Date: Tue, 29 Mar 2016 12:03:41 +0200
28bab8
Subject: [PATCH] rhtsupport: Discourage users from reporting in non Red Hat
28bab8
 stuff
28bab8
28bab8
Related: #1258482
28bab8
28bab8
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
28bab8
---
28bab8
 src/include/internal_libreport.h  |  6 ++++++
28bab8
 src/plugins/reporter-rhtsupport.c | 34 +++++++++++++++++++++++++++++++---
28bab8
 2 files changed, 37 insertions(+), 3 deletions(-)
28bab8
28bab8
diff --git a/src/include/internal_libreport.h b/src/include/internal_libreport.h
28bab8
index c5f899c..397ac22 100644
28bab8
--- a/src/include/internal_libreport.h
28bab8
+++ b/src/include/internal_libreport.h
28bab8
@@ -948,6 +948,12 @@ struct dump_dir *open_directory_for_writing(
28bab8
 #define FILENAME_PKG_VERSION   "pkg_version"
28bab8
 #define FILENAME_PKG_RELEASE   "pkg_release"
28bab8
 #define FILENAME_PKG_ARCH      "pkg_arch"
28bab8
+
28bab8
+/* RHEL packages - Red Hat, Inc. */
28bab8
+#define FILENAME_PKG_VENDOR    "pkg_vendor"
28bab8
+/* RHEL keys - https://access.redhat.com/security/team/key */
28bab8
+#define FILENAME_PKG_FINGERPRINT "pkg_fingerprint"
28bab8
+
28bab8
 #define FILENAME_USERNAME      "username"
28bab8
 #define FILENAME_ABRT_VERSION  "abrt_version"
28bab8
 #define FILENAME_EXPLOITABLE   "exploitable"
28bab8
diff --git a/src/plugins/reporter-rhtsupport.c b/src/plugins/reporter-rhtsupport.c
28bab8
index 2374dd9..7b04086 100644
28bab8
--- a/src/plugins/reporter-rhtsupport.c
28bab8
+++ b/src/plugins/reporter-rhtsupport.c
28bab8
@@ -647,11 +647,39 @@ int main(int argc, char **argv)
28bab8
             exit(EXIT_CANCEL_BY_USER);
28bab8
     }
28bab8
 
28bab8
+    const char *vendor = NULL;
28bab8
+    vendor = problem_data_get_content_or_NULL(problem_data, FILENAME_PKG_VENDOR);
28bab8
+    const char *package = NULL;
28bab8
+    package  = problem_data_get_content_or_NULL(problem_data, FILENAME_PACKAGE);
28bab8
+
28bab8
+    if (package && vendor && strcmp(vendor, "Red Hat, Inc.") != 0)
28bab8
+    {
28bab8
+        char *message = xasprintf(
28bab8
+            _("The crashed program was released by '%s'. "
28bab8
+              "Would you like to report the problem to Red Hat Support?"),
28bab8
+              vendor);
28bab8
+        int r = ask_yes_no(message);
28bab8
+        free(message);
28bab8
+        if (!r)
28bab8
+            exit(EXIT_CANCEL_BY_USER);
28bab8
+    }
28bab8
+
28bab8
+    const char *executable = NULL;
28bab8
+    executable  = problem_data_get_content_or_NULL(problem_data, FILENAME_EXECUTABLE);
28bab8
+    if (!package)
28bab8
+    {
28bab8
+        char *message = xasprintf(
28bab8
+            _("The program '%s' does not appear to be provided by Red Hat. "
28bab8
+              "Would you like to report the problem to Red Hat Support?"),
28bab8
+              executable);
28bab8
+        int r = ask_yes_no(message);
28bab8
+        free(message);
28bab8
+        if (!r)
28bab8
+            exit(EXIT_CANCEL_BY_USER);
28bab8
+    }
28bab8
+
28bab8
     const char *function;
28bab8
     const char *reason;
28bab8
-    const char *package;
28bab8
-
28bab8
-    package  = problem_data_get_content_or_NULL(problem_data, FILENAME_PACKAGE);
28bab8
     reason   = problem_data_get_content_or_NULL(problem_data, FILENAME_REASON);
28bab8
     function = problem_data_get_content_or_NULL(problem_data, FILENAME_CRASH_FUNCTION);
28bab8
     {
28bab8
-- 
28bab8
1.8.3.1
28bab8