Compare commits

...
Sign in to create a new pull request.

6 commits

Author SHA1 Message Date
Michal Srb
35f00cea1b [reporter-bugzilla] Always send API key in HTTP header
Signed-off-by: Michal Srb <michal@redhat.com>
2022-03-10 19:47:57 +01:00
Michal Srb
e643f4e31a [reporter-bugzilla] Use API key for authentication 2022-02-21 19:55:23 +01:00
Michal Srb
9763e53801 Drop old patches 2022-02-21 19:55:11 +01:00
Michal Fabik
864bf6c17d Bump release to rebuild in new side tag
Signed-off-by: Michal Fabik <mfabik@redhat.com>
2021-06-04 14:40:24 +02:00
Packit Service
2c6089c840 [packit] 2.15.2 upstream release
Upstream tag: 2.15.2
Upstream commit: 3474c03d

Signed-off-by: Packit Service <user-cont-team+packit-service@redhat.com>
2021-06-01 12:00:01 +00:00
Packit Service
de86a21d42 [packit] 2.15.1 upstream release
Upstream tag: 2.15.1
Upstream commit: 5e65d4e4

Signed-off-by: Packit Service <user-cont-team+packit-service@redhat.com>
2021-05-04 18:00:04 +00:00
16 changed files with 649 additions and 448 deletions

2
.gitignore vendored
View file

@ -13,3 +13,5 @@
/libreport-2.13.0.tar.gz
/libreport-2.13.1.tar.gz
/libreport-2.14.0.tar.gz
/libreport-2.15.1.tar.gz
/libreport-2.15.2.tar.gz

17
.packit.yml Normal file
View file

@ -0,0 +1,17 @@
specfile_path: libreport.spec
synced_files:
- .packit.yml
- libreport.spec
upstream_package_name: libreport
upstream_project_url: https://github.com/abrt/libreport
downstream_package_name: libreport
jobs:
- job: propose_downstream
trigger: release
metadata:
dist_git_branch: fedora-all
- job: copr_build
trigger: pull_request
metadata:
targets:
- fedora-all

View file

@ -1,39 +0,0 @@
From 1c646a2948d287368ec1a82b444e8175ebfbf5b9 Mon Sep 17 00:00:00 2001
From: Ernestas Kulik <ekulik@redhat.com>
Date: Tue, 25 Aug 2020 15:05:31 +0300
Subject: [PATCH] gui-wizard-gtk: wizard: Remove variable
cmd_output is no longer used since
440bcfa8526d50f122ec14e19f2bf2aa336f61e7 and trying to call
g_string_free() on it results in a critical warning.
---
src/gui-wizard-gtk/wizard.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index 44900448..a4d7caa0 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -231,8 +231,6 @@ typedef struct
static page_obj_t pages[NUM_PAGES];
-static GString *cmd_output = NULL;
-
/* Utility functions */
static void clear_warnings(void);
@@ -1667,10 +1665,6 @@ static gboolean consume_cmd_output(GIOChannel *source, GIOCondition condition, g
log_notice("done running event on '%s': %d", g_dump_dir_name, retval);
append_to_textview(g_tv_event_log, "\n");
- /* Free child output buffer */
- g_string_free(cmd_output, TRUE);
- cmd_output = NULL;
-
/* Hide spinner and stop btn */
gtk_widget_hide(GTK_WIDGET(g_spinner_event_log));
gtk_widget_hide(g_btn_stop);
--
2.28.0

View file

@ -0,0 +1,401 @@
From 34fce86c0116ef2c888dfe7e474073b158bca8b3 Mon Sep 17 00:00:00 2001
From: Michal Srb <michal@redhat.com>
Date: Mon, 21 Feb 2022 00:49:51 +0100
Subject: [PATCH] [reporter-bugzilla] Use API key for authentication
Following change will take effect on February 28 2022:
"""
Applications making API calls to Bugzilla may no longer
authenticate using passwords or supplying API keys
in call parameters. Instead, API keys must be supplied
in the Authorization header.
"""
See the announcement for more details:
https://listman.redhat.com/archives/bugzilla-announce-list/2022-February/msg00000.html
Signed-off-by: Michal Srb <michal@redhat.com>
---
doc/report_Bugzilla.conf.txt | 7 +--
doc/reporter-bugzilla.txt | 14 ++---
src/gtk-helpers/secrets.c | 2 +-
src/plugins/bugzilla.conf | 7 +--
src/plugins/report_Bugzilla.conf | 3 +-
src/plugins/report_Bugzilla.xml.in.in | 13 ++--
src/plugins/reporter-bugzilla.c | 87 ++++++++-------------------
src/plugins/rhbz.c | 15 +++++
src/plugins/rhbz.h | 2 +
tests/bugzilla_plugin.at.in | 10 +--
10 files changed, 61 insertions(+), 99 deletions(-)
diff --git a/doc/report_Bugzilla.conf.txt b/doc/report_Bugzilla.conf.txt
index ea500ae6..ce7df911 100644
--- a/doc/report_Bugzilla.conf.txt
+++ b/doc/report_Bugzilla.conf.txt
@@ -12,11 +12,8 @@ This configuration file contains values for options defined in
Configuration file lines should have 'PARAM = VALUE' format. The parameters are:
-'Bugzilla_Login'::
- Login to Bugzilla account.
-
-'Bugzilla_Password'::
- Password to Bugzilla account.
+'Bugzilla_APIKey'::
+ API key for authentication to Bugzilla account.
'Bugzilla_BugzillaURL'::
Bugzilla HTTP(S) address. (default: https://bugzilla.redhat.com)
diff --git a/doc/reporter-bugzilla.txt b/doc/reporter-bugzilla.txt
index 2aee41e1..601d2a8f 100644
--- a/doc/reporter-bugzilla.txt
+++ b/doc/reporter-bugzilla.txt
@@ -57,11 +57,8 @@ and to user's local ~/.config/libreport/bugzilla.conf.
Configuration file lines should have 'PARAM = VALUE' format. The parameters are:
User's local configuration overrides the system wide configuration.
-'Login'::
- Login to Bugzilla account.
-
-'Password'::
- Password to Bugzilla account.
+'APIKey'::
+ API key for authentication to Bugzilla account.
'BugzillaURL'::
Bugzilla HTTP(S) address. (default: https://bugzilla.redhat.com)
@@ -175,11 +172,8 @@ ENVIRONMENT VARIABLES
Environment variables take precedence over values provided in
the configuration file.
-'Bugzilla_Login'::
- Login to Bugzilla account.
-
-'Bugzilla_Password'::
- Password to Bugzilla account.
+'Bugzilla_APIKey'::
+ API key for authentication to Bugzilla account.
'Bugzilla_BugzillaURL'::
Bugzilla HTTP(S) address. (default: https://bugzilla.redhat.com)
diff --git a/src/gtk-helpers/secrets.c b/src/gtk-helpers/secrets.c
index 65decaad..55c6ee51 100644
--- a/src/gtk-helpers/secrets.c
+++ b/src/gtk-helpers/secrets.c
@@ -66,7 +66,7 @@
For example, "report_Bugzilla" item will have the lookup attribute
like ("libreportEventConfig", "report_Bugzilla") and the secret value
- like ("Bugzilla_URL=https://bugzilla.redhat.com\0Bugzilla_Login=foo\0")
+ like ("Bugzilla_URL=https://bugzilla.redhat.com\0Bugzilla_APIKey=foo\0")
diff --git a/src/plugins/bugzilla.conf b/src/plugins/bugzilla.conf
index a7727392..a81348f8 100644
--- a/src/plugins/bugzilla.conf
+++ b/src/plugins/bugzilla.conf
@@ -7,10 +7,9 @@
# yes means that ssl certificates will be checked
SSLVerify = yes
-# your login has to exist, if you don't have any, please create one
-Login =
-# your password
-Password =
+# Bugzilla API key.
+# You can set up an API key by using the "API Key" tab in the Preferences pages.
+APIKey =
# SELinux guys almost always move filed bugs from component
# selinux-policy to another component.
diff --git a/src/plugins/report_Bugzilla.conf b/src/plugins/report_Bugzilla.conf
index f1a77f50..c9bfdd11 100644
--- a/src/plugins/report_Bugzilla.conf
+++ b/src/plugins/report_Bugzilla.conf
@@ -1,4 +1,3 @@
Bugzilla_BugzillaURL = https://bugzilla.redhat.com
-Bugzilla_Login =
-Bugzilla_Password =
+Bugzilla_APIKey =
Bugzilla_SSLVerify = yes
diff --git a/src/plugins/report_Bugzilla.xml.in.in b/src/plugins/report_Bugzilla.xml.in.in
index d6078a18..966d97f6 100644
--- a/src/plugins/report_Bugzilla.xml.in.in
+++ b/src/plugins/report_Bugzilla.xml.in.in
@@ -13,16 +13,11 @@
<support-restricted-access optionname="Bugzilla_CreatePrivate">yes</support-restricted-access>
<options>
- <option type="text" name="Bugzilla_Login">
- <_label>User name</_label>
+ <option type="text" name="Bugzilla_APIKey">
+ <_label>API key</_label>
<allow-empty>no</allow-empty>
- <_description>Bugzilla account user name</_description>
- <_note-html>You can create bugzilla.redhat.com account &lt;a href="https://bugzilla.redhat.com/createaccount.cgi"&gt;here&lt;/a&gt;</_note-html>
- </option>
- <option type="password" name="Bugzilla_Password">
- <_label>Password</_label>
- <allow-empty>no</allow-empty>
- <_description>Bugzilla account password</_description>
+ <_description>Bugzilla API key</_description>
+ <_note-html>You can generate the API key for your Bugzilla account &lt;a href="https://bugzilla.redhat.com/userprefs.cgi?tab=apikey"&gt;here&lt;/a&gt;</_note-html>
</option>
<option type="bool" name="Bugzilla_CreatePrivate">
<_label>Restrict access</_label>
diff --git a/src/plugins/reporter-bugzilla.c b/src/plugins/reporter-bugzilla.c
index b588454b..27aa63d2 100644
--- a/src/plugins/reporter-bugzilla.c
+++ b/src/plugins/reporter-bugzilla.c
@@ -75,7 +75,7 @@ int attach_file_item(struct abrt_xmlrpc *ax, const char *bug_id,
struct bugzilla_struct {
char *b_login;
- char *b_password;
+ char *b_api_key;
const char *b_bugzilla_url;
const char *b_bugzilla_xmlrpc;
char *b_product;
@@ -108,15 +108,10 @@ static void set_settings(struct bugzilla_struct *b, GHashTable *settings)
{
const char *environ;
- environ = getenv("Bugzilla_Login");
+ environ = getenv("Bugzilla_APIKey");
if (!environ)
- environ = g_hash_table_lookup(settings, "Login");
- b->b_login = g_strdup(environ ? environ : "");
-
- environ = getenv("Bugzilla_Password");
- if (!environ)
- environ = g_hash_table_lookup(settings, "Password");
- b->b_password = g_strdup(environ ? environ : "");
+ environ = g_hash_table_lookup(settings, "APIKey");
+ b->b_api_key = g_strdup(environ ? environ : "");
environ = getenv("Bugzilla_BugzillaURL");
if (!environ)
@@ -210,33 +205,16 @@ char *ask_bz_login(const char *message)
}
static
-char *ask_bz_password(const char *message)
+char *ask_bz_api_key(const char *message)
{
- char *password = libreport_ask_password(message);
- if (password == NULL || password[0] == '\0')
+ char *api_key = libreport_ask_password(message);
+ if (api_key == NULL || api_key[0] == '\0')
{
libreport_set_xfunc_error_retval(EXIT_CANCEL_BY_USER);
- error_msg_and_die(_("Can't continue without password"));
+ error_msg_and_die(_("Can't continue without API key"));
}
- return password;
-}
-
-static
-void login(struct abrt_xmlrpc *client, struct bugzilla_struct *rhbz)
-{
- log_warning(_("Logging into Bugzilla at %s"), rhbz->b_bugzilla_url);
-
- while (!rhbz_login(client, rhbz->b_login, rhbz->b_password))
- {
- free(rhbz->b_login);
- g_autofree char *question = g_strdup_printf(_("Invalid password or login. Please enter your %s login:"), rhbz->b_bugzilla_url);
- rhbz->b_login = ask_bz_login(question);
-
- free(rhbz->b_password);
- question = g_strdup_printf(_("Invalid password or login. Please enter the password for '%s':"), rhbz->b_login);
- rhbz->b_password = ask_bz_password(question);
- }
+ return api_key;
}
int main(int argc, char **argv)
@@ -292,7 +270,7 @@ int main(int argc, char **argv)
"\nIf not specified, CONFFILE defaults to %1$s/plugins/bugzilla.conf"
"\nand user's local ~%2$s/bugzilla.conf."
"\nIts lines should have 'PARAM = VALUE' format."
- "\nRecognized string parameters: BugzillaURL, Login, Password, OSRelease."
+ "\nRecognized string parameters: BugzillaURL, BugzillaAPIKey, OSRelease."
"\nRecognized boolean parameter (VALUE should be 1/0, yes/no): SSLVerify."
"\nUser's local configuration overrides the system wide configuration."
"\nParameters can be overridden via $Bugzilla_PARAM environment variables."
@@ -464,18 +442,11 @@ int main(int argc, char **argv)
return EXIT_SUCCESS;
}
- if (rhbz.b_login[0] == '\0')
+ if (rhbz.b_api_key[0] == '\0')
{
- free(rhbz.b_login);
- g_autofree char *question = g_strdup_printf(_("Login is not provided by configuration. Please enter your %s login:"), rhbz.b_bugzilla_url);
- rhbz.b_login = ask_bz_login(question);
- }
-
- if (rhbz.b_password[0] == '\0')
- {
- free(rhbz.b_password);
- g_autofree char *question = g_strdup_printf(_("Password is not provided by configuration. Please enter the password for '%s':"), rhbz.b_login);
- rhbz.b_password = ask_bz_password(question);
+ free(rhbz.b_api_key);
+ g_autofree char *question = g_strdup_printf(_("API key is not provided by configuration. Please enter the API key for '%s':"), rhbz.b_bugzilla_url);
+ rhbz.b_api_key = ask_bz_api_key(question);
}
if (opts & OPT_t)
@@ -513,7 +484,7 @@ int main(int argc, char **argv)
log_warning(_("Using Bugzilla ID '%s'"), ticket_no);
}
- login(client, &rhbz);
+ rhbz_add_session_api_key(client, rhbz.b_api_key);
if (opts & OPT_w)
{
@@ -524,6 +495,8 @@ int main(int argc, char **argv)
ticket = (unsigned)ticket_intermediate;
else
error_msg_and_die("expected number in range <0, %d>: '%s'", UINT_MAX, ticket_no);
+ g_autofree char *question = g_strdup_printf(_("Please enter your %s login:"), rhbz.b_bugzilla_url);
+ rhbz.b_login = ask_bz_login(question);
rhbz_mail_to_cc(client, ticket, rhbz.b_login, /* require mail notify */ 0);
}
else
@@ -553,9 +526,6 @@ int main(int argc, char **argv)
}
}
- log_warning(_("Logging out"));
- rhbz_logout(client);
-
return 0;
}
@@ -639,8 +609,7 @@ int main(int argc, char **argv)
exit(0);
}
- login(client, &rhbz);
-
+ rhbz_add_session_api_key(client, rhbz.b_api_key);
unsigned long bug_id = 0;
@@ -745,9 +714,6 @@ int main(int argc, char **argv)
if (r == 0)
{
- log_warning(_("Logging out"));
- rhbz_logout(client);
-
exit(EXIT_CANCEL_BY_USER);
}
@@ -887,12 +853,14 @@ int main(int argc, char **argv)
* bug's status.
*/
- /* Add user's login to CC if not there already */
- if (strcmp(bz->bi_reporter, rhbz.b_login) != 0
- && !g_list_find_custom(bz->bi_cc_list, rhbz.b_login, (GCompareFunc)g_strcmp0)
- ) {
- log_warning(_("Adding %s to CC list"), rhbz.b_login);
- rhbz_mail_to_cc(client, bz->bi_id, rhbz.b_login, RHBZ_MINOR_UPDATE);
+ /* Add user's login to CC if not there already, but only if the login is known */
+ if (rhbz.b_login != NULL && rhbz.b_login[0] != '\0') {
+ if (strcmp(bz->bi_reporter, rhbz.b_login) != 0
+ && !g_list_find_custom(bz->bi_cc_list, rhbz.b_login, (GCompareFunc)g_strcmp0)
+ ) {
+ log_warning(_("Adding %s to CC list"), rhbz.b_login);
+ rhbz_mail_to_cc(client, bz->bi_id, rhbz.b_login, RHBZ_MINOR_UPDATE);
+ }
}
/* Add comment and bt */
@@ -947,9 +915,6 @@ int main(int argc, char **argv)
}
log_out:
- log_warning(_("Logging out"));
- rhbz_logout(client);
-
log_warning(_("Status: %s%s%s %s/show_bug.cgi?id=%u"),
bz->bi_status,
bz->bi_resolution ? " " : "",
diff --git a/src/plugins/rhbz.c b/src/plugins/rhbz.c
index c2855a70..5234250d 100644
--- a/src/plugins/rhbz.c
+++ b/src/plugins/rhbz.c
@@ -208,6 +208,21 @@ bool rhbz_login(struct abrt_xmlrpc *ax, const char *login, const char *password)
return true;
}
+
+bool rhbz_add_session_api_key(struct abrt_xmlrpc *ax, const char *api_key)
+{
+ func_entry();
+
+ xmlrpc_env env;
+ xmlrpc_env_init(&env);
+
+ log_debug("Adding session param Bugzilla_api_key");
+ abrt_xmlrpc_client_add_session_param_string(&env, ax, "Bugzilla_api_key", api_key);
+
+ return true;
+}
+
+
xmlrpc_value *rhbz_get_member(const char *member, xmlrpc_value *xml)
{
func_entry_str(member);
diff --git a/src/plugins/rhbz.h b/src/plugins/rhbz.h
index 7183da35..d10ff31c 100644
--- a/src/plugins/rhbz.h
+++ b/src/plugins/rhbz.h
@@ -67,6 +67,8 @@ void free_bug_info(struct bug_info *bz);
bool rhbz_login(struct abrt_xmlrpc *ax, const char *login, const char *password);
+bool rhbz_add_session_api_key(struct abrt_xmlrpc *ax, const char *api_key);
+
void rhbz_mail_to_cc(struct abrt_xmlrpc *ax, int bug_id, const char *mail, int flags);
void rhbz_add_comment(struct abrt_xmlrpc *ax, int bug_id, const char *comment,
diff --git a/tests/bugzilla_plugin.at.in b/tests/bugzilla_plugin.at.in
index abb912a0..0006ee92 100644
--- a/tests/bugzilla_plugin.at.in
+++ b/tests/bugzilla_plugin.at.in
@@ -37,13 +37,10 @@ TS_MAIN
TS_ASSERT_TRUE(conf->ec_supports_restricted_access);
event_option_t options[10] = {
- { .eo_value = NULL, .eo_label = (char *)"User name",
- .eo_note_html = (char *)"You can create bugzilla.redhat.com account <a href=\"https://bugzilla.redhat.com/createaccount.cgi\">here</a>",
+ { .eo_value = NULL, .eo_label = (char *)"API key",
+ .eo_note_html = (char *)"You can generate the API key for your Bugzilla account <a href=\"https://bugzilla.redhat.com/userprefs.cgi?tab=apikey\">here</a>",
.eo_type = OPTION_TYPE_TEXT, .eo_allow_empty = 0, .is_advanced = 0,
},
- { .eo_value = NULL, .eo_label = (char *)"Password", .eo_note_html = NULL,
- .eo_type = OPTION_TYPE_PASSWORD, .eo_allow_empty = 0, .is_advanced = 0,
- },
{ .eo_value = (char *)"@RED_HAT_BUGZILLA_CREATE_PRIVATE@", .eo_label = (char *)"Restrict access",
.eo_note_html = (char *)"Restrict access to the created bugzilla ticket allowing only users from specified groups to view it (see advanced settings for more details)",
.eo_type = OPTION_TYPE_BOOL, .eo_allow_empty = 0, .is_advanced = 0,
@@ -79,8 +76,7 @@ TS_MAIN
};
const char *option_names[] = {
- "Bugzilla_Login",
- "Bugzilla_Password",
+ "Bugzilla_APIKey",
"Bugzilla_CreatePrivate",
"Bugzilla_PrivateGroups",
"Bugzilla_BugzillaURL",
--
2.35.1

View file

@ -1,49 +0,0 @@
From 85b687098bcedb67285ab787b8bd506d328c34e0 Mon Sep 17 00:00:00 2001
From: Ernestas Kulik <ekulik@redhat.com>
Date: Tue, 25 Aug 2020 15:17:54 +0300
Subject: [PATCH] gui-wizard-gtk: wizard: Fix invalid memory read
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This partially reverts 7aba6e53bbfeedaacd95bbaa5e0c5e325a3e6a8d, which
results in “event” being inappropriately freed before a “goto” statement
is executed and the value stored in “g_event_selected” is read.
---
src/gui-wizard-gtk/wizard.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index a4d7caa0..3e69a513 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -2635,7 +2635,7 @@ static gint select_next_page_no(gint current_page_no)
log_info("%s: Looking for next event to process", __func__);
/* (note: this frees and sets to NULL g_event_selected) */
- g_autofree char *event = setup_next_processed_event(&g_auto_event_list);
+ char *event = setup_next_processed_event(&g_auto_event_list);
if (!event)
{
current_page_no = PAGENO_EVENT_PROGRESS - 1;
@@ -2644,6 +2644,8 @@ static gint select_next_page_no(gint current_page_no)
if (!get_sensitive_data_permission(event))
{
+ free(event);
+
cancel_processing(g_lbl_event_log, /* default message */ NULL, TERMINATE_NOFLAGS);
current_page_no = PAGENO_EVENT_PROGRESS - 1;
goto again;
@@ -2659,6 +2661,8 @@ static gint select_next_page_no(gint current_page_no)
if (libreport_get_global_stop_on_not_reportable())
{
+ free(event);
+
cancel_processing(g_lbl_event_log, msg, TERMINATE_NOFLAGS);
current_page_no = PAGENO_EVENT_PROGRESS - 1;
goto again;
--
2.28.0

View file

@ -0,0 +1,180 @@
From e9f7047b10895cbeb40248055a1e29f5fb205887 Mon Sep 17 00:00:00 2001
From: Michal Srb <michal@redhat.com>
Date: Thu, 10 Mar 2022 10:13:51 +0100
Subject: [PATCH] reporter-bugzilla: send API key in HTTP header
But only if the target instance is Red Hat Bugzilla.
This change is required as Red Hat Bugzilla expects the API key
to be in the HTTP header and it won't find it in XML-RPC params.
xmlrpc-c doesn't support custom headers. Only User-Agent header
is supported. However, since HTTP is a text protocol, we can add
more headers by simply strategically placing line break characters
("\r\n" for HTTP) inside the User-Agent header.
HTTP will do the right thing and interpret such string as multiple
headers.
Signed-off-by: Michal Srb <michal@redhat.com>
---
CHANGELOG.md | 1 +
src/lib/abrt_xmlrpc.c | 31 ++++++++++++++++++++++++++++++-
src/lib/abrt_xmlrpc.h | 2 ++
src/lib/libreport-web.sym | 1 +
src/plugins/reporter-bugzilla.c | 18 +++++++++++++++---
5 files changed, 49 insertions(+), 4 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c3946a05..0eaade41 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
## [Unreleased]
+- reporter-bugzilla: send API key in HTTP header for Red Hat Bugzilla
## [2.15.2]
### Changed
diff --git a/src/lib/abrt_xmlrpc.c b/src/lib/abrt_xmlrpc.c
index 7cac9253..0d297e92 100644
--- a/src/lib/abrt_xmlrpc.c
+++ b/src/lib/abrt_xmlrpc.c
@@ -37,6 +37,14 @@ void abrt_xmlrpc_error(xmlrpc_env *env)
}
struct abrt_xmlrpc *abrt_xmlrpc_new_client(const char *url, int ssl_verify)
+{
+ /* non-RH clients are the same as RH clients,
+ * but they don't send API key in the HTTP header.
+ */
+ return abrt_xmlrpc_new_redhat_client(url, ssl_verify, NULL);
+}
+
+struct abrt_xmlrpc *abrt_xmlrpc_new_redhat_client(const char *url, int ssl_verify, const char *api_key)
{
GList *proxies = NULL;
xmlrpc_env env;
@@ -69,6 +77,24 @@ struct abrt_xmlrpc *abrt_xmlrpc_new_client(const char *url, int ssl_verify)
#else
curl_parms.user_agent = "abrt";
#endif
+ if (api_key != NULL) {
+ /* Inject "Authorization" header right after the User-Agent header */
+
+ /* The User-Agent header normally has the following format:
+ * User-Agent: libreport/2.15.2 Xmlrpc-c/1.51.0 Curl/7.79.1
+ *
+ * We modify it here so it becomes 3 headers:
+ * User-Agent: libreport/2.15.2
+ * Authorization: Bearer <api-key>
+ * X-Libreport-Extra-User-Agent: Xmlrpc-c/1.51.0 Curl/7.79.1
+ */
+ curl_parms.user_agent = g_strdup_printf("%s\r\nAuthorization: Bearer %s\r\nX-Libreport-Extra-User-Agent:", curl_parms.user_agent, api_key);
+
+ /* User-Agent string seems to be burried somewhere deep in the xmlrpc_client struct.
+ * Let's just remember the pointer here so we can easily free it when the time comes.
+ */
+ ax->libreport_user_agent = curl_parms.user_agent;
+ }
proxies = get_proxy_list(url);
/* Use the first proxy from the list */
@@ -109,8 +135,11 @@ void abrt_xmlrpc_free_client(struct abrt_xmlrpc *ax)
if (ax->ax_server_info)
xmlrpc_server_info_free(ax->ax_server_info);
- if (ax->ax_client)
+ if (ax->ax_client) {
+ if (ax->libreport_user_agent)
+ g_free(ax->libreport_user_agent);
xmlrpc_client_destroy(ax->ax_client);
+ }
for (GList *iter = ax->ax_session_params; iter; iter = g_list_next(iter))
{
diff --git a/src/lib/abrt_xmlrpc.h b/src/lib/abrt_xmlrpc.h
index 31768ffc..848a35be 100644
--- a/src/lib/abrt_xmlrpc.h
+++ b/src/lib/abrt_xmlrpc.h
@@ -37,6 +37,7 @@ struct abrt_xmlrpc {
xmlrpc_client *ax_client;
xmlrpc_server_info *ax_server_info;
GList *ax_session_params;
+ const char *libreport_user_agent;
};
xmlrpc_value *abrt_xmlrpc_array_new(xmlrpc_env *env);
@@ -48,6 +49,7 @@ void abrt_xmlrpc_params_set_value(xmlrpc_env *env, xmlrpc_value *params, const c
struct abrt_xmlrpc *abrt_xmlrpc_new_client(const char *url, int ssl_verify);
+struct abrt_xmlrpc *abrt_xmlrpc_new_redhat_client(const char *url, int ssl_verify, const char *api_key);
void abrt_xmlrpc_free_client(struct abrt_xmlrpc *ax);
void abrt_xmlrpc_client_add_session_param_string(xmlrpc_env *env, struct abrt_xmlrpc *ax, const char *name, const char *value);
void abrt_xmlrpc_die(xmlrpc_env *env) __attribute__((noreturn));
diff --git a/src/lib/libreport-web.sym b/src/lib/libreport-web.sym
index 44f5244d..8dcff633 100644
--- a/src/lib/libreport-web.sym
+++ b/src/lib/libreport-web.sym
@@ -44,6 +44,7 @@ global:
abrt_xmlrpc_params_set_value_str;
abrt_xmlrpc_params_set_value;
abrt_xmlrpc_new_client;
+ abrt_xmlrpc_new_redhat_client;
abrt_xmlrpc_free_client;
abrt_xmlrpc_client_add_session_param_string;
abrt_xmlrpc_die;
diff --git a/src/plugins/reporter-bugzilla.c b/src/plugins/reporter-bugzilla.c
index 27aa63d2..c54d319c 100644
--- a/src/plugins/reporter-bugzilla.c
+++ b/src/plugins/reporter-bugzilla.c
@@ -217,6 +217,12 @@ char *ask_bz_api_key(const char *message)
return api_key;
}
+static
+bool is_redhat_bugzilla(const char *bugzilla_url)
+{
+ return g_str_has_suffix(bugzilla_url, "redhat.com");
+}
+
int main(int argc, char **argv)
{
abrt_init(argv);
@@ -378,7 +384,7 @@ int main(int argc, char **argv)
xmlrpc_env_clean(&env);
struct abrt_xmlrpc *client;
- client = abrt_xmlrpc_new_client(rhbz.b_bugzilla_xmlrpc, rhbz.b_ssl_verify);
+ client = abrt_xmlrpc_new_redhat_client(rhbz.b_bugzilla_xmlrpc, rhbz.b_ssl_verify, rhbz.b_api_key);
unsigned rhbz_ver = rhbz_version(client);
if (abrt_hash)
@@ -484,7 +490,10 @@ int main(int argc, char **argv)
log_warning(_("Using Bugzilla ID '%s'"), ticket_no);
}
- rhbz_add_session_api_key(client, rhbz.b_api_key);
+ if (!is_redhat_bugzilla(rhbz.b_bugzilla_url)) {
+ /* Add API key as a XML-RPC param, but only for non-RH bugzilla instances */
+ rhbz_add_session_api_key(client, rhbz.b_api_key);
+ }
if (opts & OPT_w)
{
@@ -609,7 +618,10 @@ int main(int argc, char **argv)
exit(0);
}
- rhbz_add_session_api_key(client, rhbz.b_api_key);
+ if (!is_redhat_bugzilla(rhbz.b_bugzilla_url)) {
+ /* Add API key as a XML-RPC param, but only for non-RH bugzilla instances */
+ rhbz_add_session_api_key(client, rhbz.b_api_key);
+ }
unsigned long bug_id = 0;
--
2.35.1

View file

@ -1,53 +0,0 @@
From ce557c0fb309184a9a8fc38a76404324d94803b0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C4=9Bj=20Grabovsk=C3=BD?= <mgrabovs@redhat.com>
Date: Fri, 25 Sep 2020 19:23:51 +0200
Subject: [PATCH] gui-wizard-gtk: Fix a double free condition
We may only free `log_msg` in `update_command_run_log()` if it is the
result of the call to `g_strdup_printf()`, otherwise the caller takes
care of it.
Partially reverts 7aba6e53.
Resolves rhbz#1882319
---
src/gui-wizard-gtk/wizard.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index 8a4486f2..a532c633 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -1385,7 +1385,7 @@ static void cancel_processing(GtkLabel *status_label, const char *message, int t
pango_attr_list_unref(list);
}
-static void update_command_run_log(const char* message, struct analyze_event_data *evd)
+static void update_command_run_log(char *message, struct analyze_event_data *evd)
{
const bool it_is_a_dot = (message[0] == '.' && message[1] == '\0');
@@ -1393,12 +1393,18 @@ static void update_command_run_log(const char* message, struct analyze_event_dat
gtk_label_set_text(g_lbl_event_log, message);
/* Don't append new line behind single dot */
- g_autofree const char *log_msg = it_is_a_dot ? message : g_strdup_printf("%s\n", message);
+ char *log_msg = it_is_a_dot ? message : g_strdup_printf("%s\n", message);
append_to_textview(g_tv_event_log, log_msg);
save_to_event_log(evd, log_msg);
+
+ if (log_msg != message)
+ {
+ /* We assume message is managed by the caller. */
+ free(log_msg);
+ }
}
-static void run_event_gtk_error(const char *error_line, void *param)
+static void run_event_gtk_error(char *error_line, void *param)
{
update_command_run_log(error_line, (struct analyze_event_data *)param);
}
--
2.26.2

View file

@ -1,66 +0,0 @@
From cb2ab9a8b2e1dbc89e100aedc432c29a16246e84 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C4=9Bj=20Grabovsk=C3=BD?= <mgrabovs@redhat.com>
Date: Sun, 27 Sep 2020 20:45:32 +0200
Subject: [PATCH] gui-wizard-gtk: Fix a segfault and memory leak
Only `arg[1]` has to be freed in `tv_details_row_activated()`, as
`arg[0]` is allocated statically.
In `search_item_to_list_store_item()`, `tmp` gets overwritten with a new
value for every call to `gtk_text_buffer_get_text()`, so we need to free
the allocated memory continuously.
Partially reverts 7aba6e53.
Resolves rhbz#1882950
---
src/gui-wizard-gtk/wizard.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index a532c633..775b709f 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -707,7 +707,7 @@ static void tv_details_row_activated(
return;
gint exitcode;
- g_autofree gchar *arg[3];
+ gchar *arg[3];
arg[0] = (char *) "xdg-open";
arg[1] = g_build_filename(g_dump_dir_name ? g_dump_dir_name : "", item_name, NULL);
arg[2] = NULL;
@@ -751,6 +751,8 @@ static void tv_details_row_activated(
gtk_widget_destroy(scrolled);
gtk_widget_destroy(dialog);
}
+
+ g_free(arg[1]);
}
/* static gboolean tv_details_select_cursor_row(
@@ -2126,17 +2128,20 @@ static void search_item_to_list_store_item(GtkListStore *store, GtkTreeIter *new
gtk_text_iter_backward_char(end);
}
- g_autofree gchar *tmp = gtk_text_buffer_get_text(word->buffer, beg, &(word->start),
+ gchar *tmp = gtk_text_buffer_get_text(word->buffer, beg, &(word->start),
/*don't include hidden chars*/FALSE);
g_autofree gchar *prefix = g_markup_escape_text(tmp, /*NULL terminated string*/-1);
+ g_free(tmp);
tmp = gtk_text_buffer_get_text(word->buffer, &(word->start), &(word->end),
/*don't include hidden chars*/FALSE);
g_autofree gchar *text = g_markup_escape_text(tmp, /*NULL terminated string*/-1);
+ g_free(tmp);
tmp = gtk_text_buffer_get_text(word->buffer, &(word->end), end,
/*don't include hidden chars*/FALSE);
g_autofree gchar *suffix = g_markup_escape_text(tmp, /*NULL terminated string*/-1);
+ g_clear_pointer(&tmp, g_free);
char *content = g_strdup_printf("%s<span foreground=\"red\">%s</span>%s", prefix, text, suffix);
--
2.26.2

View file

@ -1,66 +0,0 @@
From 1a22f30187163ce288b14e55a80539353a38b7be Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C4=9Bj=20Grabovsk=C3=BD?= <mgrabovs@redhat.com>
Date: Tue, 29 Sep 2020 14:16:00 +0200
Subject: [PATCH 1/2] gui-wizard-gtk: Fix segfault
Since show_error_as_msgbox() is specified as the custom logging handler
(via setting libreport_g_custom_logger), it will get called if an error
occurs in libreport_save_user_settings(). However, at that point,
g_wnd_assistant has already been destroyed, which leads to an invalid
read in show_error_as_msgbox().
This change unsets the custom logging handler after the GUI is destroyed
and adds an assertion in show_error_as_msgbox() checking that
g_wnd_assistant is not a null pointer.
Resolves https://bugzilla.redhat.com/show_bug.cgi?id=1883337
---
src/gui-wizard-gtk/main.c | 6 ++++--
src/gui-wizard-gtk/wizard.c | 2 ++
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/gui-wizard-gtk/main.c b/src/gui-wizard-gtk/main.c
index e111948c..f094c5fb 100644
--- a/src/gui-wizard-gtk/main.c
+++ b/src/gui-wizard-gtk/main.c
@@ -125,6 +125,7 @@ int main(int argc, char **argv)
/* List of events specified on the command line. */
GList *user_event_list = NULL;
const char *prgname = "abrt";
+ int ret = 0;
abrt_init(argv);
/* I18n */
@@ -217,13 +218,14 @@ int main(int argc, char **argv)
g_signal_connect(app, "startup", G_CALLBACK(startup_wizard), NULL);
/* Enter main loop */
- g_application_run(G_APPLICATION(app), argc, argv);
+ ret = g_application_run(G_APPLICATION(app), argc, argv);
g_object_unref(app);
+ libreport_g_custom_logger = NULL;
if (opts & OPT_d)
delete_dump_dir_possibly_using_abrtd(g_dump_dir_name);
libreport_save_user_settings();
- return 0;
+ return ret;
}
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index 775b709f..c4a0b4c0 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -360,6 +360,8 @@ struct dump_dir *wizard_open_directory_for_writing(const char *dump_dir_name)
void show_error_as_msgbox(const char *msg)
{
+ g_return_if_fail(g_wnd_assistant != NULL);
+
GtkWidget *dialog = gtk_message_dialog_new(GTK_WINDOW(g_wnd_assistant),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_WARNING,
--
2.26.2

View file

@ -1,40 +0,0 @@
From 41b6477bdeaa82c647db2f1c2ba1132c77b365ed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C4=9Bj=20Grabovsk=C3=BD?= <mgrabovs@redhat.com>
Date: Tue, 29 Sep 2020 14:43:15 +0200
Subject: [PATCH 2/2] event_config: Null autofree pointers before returning
The pointers to strings in the function check_problem_rating_usability()
need to be nullified before the function returns as they are declared
for auto-cleanup.
This change fixes a double-free condition in which the returned strings
were attempted to be freed again in the caller,
is_backtrace_rating_usable().
Bug was introduced in 05e9c9273.
Resolves rhbz#1883410
---
src/lib/event_config.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/lib/event_config.c b/src/lib/event_config.c
index c8053b7c..01e91efe 100644
--- a/src/lib/event_config.c
+++ b/src/lib/event_config.c
@@ -541,10 +541,10 @@ bool check_problem_rating_usability(const event_config_t *cfg,
finish:
if (description)
- *description = tmp_desc;
+ *description = g_steal_pointer(&tmp_desc);
if (detail)
- *detail = tmp_detail;
+ *detail = g_steal_pointer(&tmp_detail);
return result;
}
--
2.26.2

View file

@ -1,34 +0,0 @@
From 9b6d40905c21b476c58e9f9a908ddb32a0a56a18 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C4=9Bj=20Grabovsk=C3=BD?= <mgrabovs@redhat.com>
Date: Tue, 29 Sep 2020 19:14:05 +0200
Subject: [PATCH] gui-wizard-gtk: Don't autofree URL string
g_object_set_data() does not (and cannot) copy the data passed to it, so
once url is freed, a subsequent access to the 'url' tag leads to an
invalid read and segfault.
Bug was introduced in df386b097.
Resolves rhbz#1882328
---
src/gui-wizard-gtk/wizard.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index 0af19587..ba1998df 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -462,8 +462,8 @@ static void append_to_textview(GtkTextView *tv, const char *str)
GtkTextTag *tag;
tag = gtk_text_buffer_create_tag(tb, NULL, "foreground", "blue",
"underline", PANGO_UNDERLINE_SINGLE, NULL);
- g_autofree char *url = g_strndup(t->start, t->len);
- g_object_set_data(G_OBJECT(tag), "url", url);
+ char *url = g_strndup(t->start, t->len);
+ g_object_set_data_full(G_OBJECT(tag), "url", url, g_free);
gtk_text_buffer_insert_with_tags(tb, &text_iter, url, -1, tag, NULL);
--
2.26.2

View file

@ -1,48 +0,0 @@
From 9cdf0f9123ee39c7cb32a276371b2fd95f0df5ac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C4=9Bj=20Grabovsk=C3=BD?= <mgrabovs@redhat.com>
Date: Mon, 2 Nov 2020 11:45:23 +0100
Subject: [PATCH] rhbz: Fix a double-free condition
The `cc` string must not be freed after the variable goes out of scope
since it's appended to `cc_list`. (`g_list_append()` does not copy its
input.) We only need to free the last string in the loop, which is an
empty string.
The bug was introduced in 7aba6e53.
Resolves rhbz#1893595
---
src/plugins/rhbz.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/plugins/rhbz.c b/src/plugins/rhbz.c
index 8a2ded79..e0d7a091 100644
--- a/src/plugins/rhbz.c
+++ b/src/plugins/rhbz.c
@@ -406,18 +406,20 @@ GList *rhbz_bug_cc(xmlrpc_value* result_xml)
if (!item)
continue;
- g_autofree const char* cc = NULL;
- xmlrpc_read_string(&env, item, &cc);
+ char *cc = NULL;
+ xmlrpc_read_string(&env, item, (const char **)&cc);
xmlrpc_DECREF(item);
if (env.fault_occurred)
abrt_xmlrpc_die(&env);
if (*cc != '\0')
{
- cc_list = g_list_append(cc_list, (char*)cc);
+ cc_list = g_list_append(cc_list, cc);
log_debug("member on cc is %s", cc);
continue;
}
+
+ free(cc);
}
xmlrpc_DECREF(cc_member);
return cc_list;
--
2.26.2

View file

@ -1,28 +0,0 @@
From cbb6b43038f0d88b28197ba905ba9324c0602945 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C4=9Bj=20Grabovsk=C3=BD?= <mgrabovs@redhat.com>
Date: Thu, 3 Sep 2020 15:05:23 +0200
Subject: [PATCH] client-python: Add getter for package count to downloader
Add a new method get_package_count() to the DebugInfoDownload class
which returns the number of packages that will be downloaded.
---
src/client-python/reportclient/debuginfo.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/client-python/reportclient/debuginfo.py b/src/client-python/reportclient/debuginfo.py
index cb318e8a..eeb2be30 100644
--- a/src/client-python/reportclient/debuginfo.py
+++ b/src/client-python/reportclient/debuginfo.py
@@ -242,6 +242,9 @@ class DebugInfoDownload(object):
def get_install_size(self):
return self.installed_size
+ def get_package_count(self):
+ return len(self.package_files_dict)
+
def mute_stdout(self):
"""
Links sys.stdout with /dev/null and saves the old stdout
--
2.26.2

3
README.packit Normal file
View file

@ -0,0 +1,3 @@
This repository is maintained by packit.
https://packit.dev/
The file was generated using packit 0.31.0.

View file

@ -14,22 +14,13 @@
Summary: Generic library for reporting various problems
Name: libreport
Version: 2.14.0
Release: 17%{?dist}
Version: 2.15.2
Release: 4%{?dist}
License: GPLv2+
URL: https://abrt.readthedocs.org/
Source: https://github.com/abrt/%{name}/archive/%{version}/%{name}-%{version}.tar.gz
Patch0: 0001-gui-wizard-gtk-wizard-Remove-variable.patch
Patch1: 0002-gui-wizard-gtk-wizard-Fix-invalid-memory-read.patch
Patch2: 0003-gui-wizard-gtk-Fix-a-double-free-condition.patch
Patch3: 0004-gui-wizard-gtk-Fix-a-segfault-and-memory-leak.patch
Patch4: 0005-gui-wizard-gtk-Fix-segfault.patch
Patch5: 0006-event_config-Null-autofree-pointers-before-returning.patch
Patch6: 0007-gui-wizard-gtk-Don-t-autofree-URL-string.patch
Patch7: 0008-rhbz-Fix-a-double-free-condition.patch
Patch8: 0009-client-python-Add-getter-for-package-count-to-downlo.patch
Patch0: 0001-reporter-bugzilla-Use-API-key-for-authentication.patch
Patch1: 0002-reporter-bugzilla-send-API-key-in-HTTP-header.patch
BuildRequires: %{dbus_devel}
BuildRequires: gtk3-devel
BuildRequires: curl-devel
@ -37,9 +28,9 @@ BuildRequires: desktop-file-utils
BuildRequires: python3-devel
BuildRequires: gettext
BuildRequires: libxml2-devel
BuildRequires: libtar-devel
BuildRequires: intltool
BuildRequires: libtool
BuildRequires: make
BuildRequires: texinfo
BuildRequires: asciidoc
BuildRequires: xmlto
@ -47,7 +38,6 @@ BuildRequires: newt-devel
BuildRequires: libproxy-devel
BuildRequires: satyr-devel >= 0.24
BuildRequires: glib2-devel >= %{glib_ver}
BuildRequires: nettle-devel
BuildRequires: git-core
%if 0%{?fedora} >= 24 || 0%{?rhel} > 7
@ -67,7 +57,6 @@ Requires: libreport-filesystem = %{version}-%{release}
Requires: satyr%{?_isa} >= 0.24
Requires: glib2%{?_isa} >= %{glib_ver}
Requires: libarchive%{?_isa}
Requires: nettle%{?_isa}
# Required for the temporary modularity hack, see below
%if 0%{?_module_build}
@ -191,7 +180,7 @@ The simple reporter plugin which writes a report to the systemd journal.
%package plugin-mailx
Summary: %{name}'s mailx reporter plugin
Requires: %{name} = %{version}-%{release}
Requires: mailx
Requires: /usr/bin/mailx
%description plugin-mailx
The simple reporter plugin which sends a report via mailx to a specified
@ -227,12 +216,8 @@ Workflows to report issues into the CentOS Bug Tracker.
%package plugin-ureport
Summary: %{name}'s micro report plugin
BuildRequires: %{libjson_devel}
BuildRequires: make
Requires: %{name} = %{version}-%{release}
Requires: libreport-web = %{version}-%{release}
%if 0%{?rhel} && ! 0%{?eln}
Requires: python3-subscription-manager-rhsm
%endif
%description plugin-ureport
Uploads micro-report to abrt server
@ -294,10 +279,10 @@ data over ftp/scp...
%endif
%prep
%autosetup -S git
%autosetup -p1
%build
autoreconf
./autogen.sh
%configure \
%if %{without bugzilla}
@ -312,7 +297,7 @@ autoreconf
%make_install \
%if %{with python3}
PYTHON=%{__python3} \
%endif # with python3
%endif
mandir=%{_mandir}
%find_lang %{name}
@ -413,12 +398,14 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%config(noreplace) %{_sysconfdir}/%{name}/report_event.conf
%config(noreplace) %{_sysconfdir}/%{name}/forbidden_words.conf
%config(noreplace) %{_sysconfdir}/%{name}/ignored_words.conf
%config(noreplace) %{_sysconfdir}/%{name}/ignored_elements.conf
%{_datadir}/%{name}/conf.d/libreport.conf
%{_libdir}/libreport.so.*
%{_mandir}/man5/libreport.conf.5*
%{_mandir}/man5/report_event.conf.5*
%{_mandir}/man5/forbidden_words.conf.5*
%{_mandir}/man5/ignored_words.conf.5*
%{_mandir}/man5/ignored_elements.conf.5*
# filesystem package owns /usr/share/augeas/lenses directory
%{_datadir}/augeas/lenses/libreport.aug
@ -667,6 +654,40 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%endif
%changelog
* Thu Mar 10 2022 Michal Srb <michal@redhat.com> - 2.15.2-4
- [reporter-bugzilla] Always send API key in HTTP header
* Mon Feb 21 2022 Michal Srb <michal@redhat.com> - 2.15.2-3
- [reporter-bugzilla] Use API key for authentication
* Tue Jun 01 2021 Packit Service <user-cont-team+packit-service@redhat.com> - 2.15.2-1
- Release version 2.15.2-1 (Michal Fabik)
- binhex: Remove unused API (Matěj Grabovský)
- lib: Use GLib for computing SHA-1 digests (Matěj Grabovský)
- run_event: Improve memory management (Matěj Grabovský)
- gtk: Fix segfault (Matěj Grabovský)
* Tue May 04 2021 Packit Service <user-cont-team+packit-service@redhat.com> - 2.15.1-1
- Release version 2.15.1-1 (Michal Fabik)
- ureport: Strange usage of tmp variable (Michal Židek)
- steal_directory: Silence a warning (Michal Židek)
- dump_dir: Use g_free and re-init to NULL (Michal Židek)
- dump_dir: Use g_free instead of free (Michal Židek)
- dirsize: No need to check for NULL (Michal Židek)
- dirsize: Bad checks for NULL (Michal Židek)
- gui-wizard-gtk: Possible double free (Michal Židek)
- gui-wizard-gtk: Check if EXCLUDE_FROM_REPORT is set (Michal Židek)
- gui-wizard-gtk: Improve docs and add missing free (Michal Židek)
- cli: Address of local auto-variable assigned to a function parameter (Michal Židek)
- gtk-helpers: Add missing g_strfreev() (Michal Židek)
- cli: Add missing g_free call (Michal Židek)
- gitignore: Drop misleading comment (Michal Fabik)
- spec: Sync upstream with distgit (Michal Fabik)
- changelog: Add missing link to changes in 2.15.0 (Matěj Grabovský)
- spec: Make plugin-mailx depend on /usr/bin/mailx (Matěj Grabovský)
- Add support for excluding whole elements from search for sensitive words (Michal Srb)
- ignored_words: add more "key" variations (Michal Srb)
* Fri Jan 29 2021 Michal Srb <michal@redhat.com> - 2.14.0-17
- Drop AnacondaRHEL workflow reference

View file

@ -1 +1 @@
SHA512 (libreport-2.14.0.tar.gz) = 6bc428a2d91b22f2df1abc9326c131e91e5e7be78ca64ad6533ff8246fa02df9a975360686811d29fd66210206a4e4ee5dc9faf2c9b23eccab7ca0ec07c3d43c
SHA512 (libreport-2.15.2.tar.gz) = c98003325fa70d674177c9f602a7f121815a9675701ee780ad8908ed69862f2c69be65c7483fd3f017ba299dda51ba304f0908c771c9d97cb5bba057e3a9c5dc