Compare commits
No commits in common. "c8s" and "c9-beta" have entirely different histories.
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
||||
/yelp-3.28.1.tar.xz
|
||||
SOURCES/yelp-40.3.tar.xz
|
||||
|
1
.yelp.metadata
Normal file
1
.yelp.metadata
Normal file
@ -0,0 +1 @@
|
||||
c8eac14b739808eeb24727df03f19d5a998732aa SOURCES/yelp-40.3.tar.xz
|
@ -1,30 +0,0 @@
|
||||
From 18a82693d550f4d19c4310741dc60cfef605079a Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Popela <tpopela@redhat.com>
|
||||
Date: Mon, 23 Jul 2018 09:01:18 +0200
|
||||
Subject: [PATCH 01/17] Add gnu_printf format attribute to yelp_debug
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-debug.c:150:3: warning: function 'yelp_debug' might be
|
||||
a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
|
||||
---
|
||||
libyelp/yelp-debug.h | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libyelp/yelp-debug.h b/libyelp/yelp-debug.h
|
||||
index 620a4bf1..18c5582e 100644
|
||||
--- a/libyelp/yelp-debug.h
|
||||
+++ b/libyelp/yelp-debug.h
|
||||
@@ -67,8 +67,9 @@ typedef enum {
|
||||
#endif
|
||||
|
||||
G_GNUC_INTERNAL
|
||||
-void yelp_debug (const gchar *file, guint line,
|
||||
- const gchar *function, guint flags, const gchar *format, ...);
|
||||
+void yelp_debug (const gchar *file, guint line,
|
||||
+ const gchar *function, guint flags,
|
||||
+ const gchar *format, ...) __attribute__ ((format (gnu_printf, 5, 6)));
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
--
|
||||
2.19.1
|
||||
|
@ -1,185 +0,0 @@
|
||||
From b8fdfcae060bdffb15d81e68cdff011105013eb0 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Catanzaro <mcatanzaro@igalia.com>
|
||||
Date: Fri, 18 May 2018 09:56:16 -0500
|
||||
Subject: [PATCH] Fix build with GCC 8
|
||||
|
||||
Yelp enables -Werror by default, so it's responsible for predicting and
|
||||
fixing future compiler warnings that only an oracle could know about. In
|
||||
this case, that turned out to be -Werror=cast-function-type.
|
||||
---
|
||||
libyelp/yelp-docbook-document.c | 6 +++---
|
||||
libyelp/yelp-document.c | 4 ++--
|
||||
libyelp/yelp-help-list.c | 2 +-
|
||||
libyelp/yelp-info-document.c | 2 +-
|
||||
libyelp/yelp-mallard-document.c | 6 +++---
|
||||
libyelp/yelp-man-document.c | 2 +-
|
||||
libyelp/yelp-simple-document.c | 2 +-
|
||||
libyelp/yelp-transform.c | 2 +-
|
||||
libyelp/yelp-uri.c | 2 +-
|
||||
9 files changed, 14 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/libyelp/yelp-docbook-document.c b/libyelp/yelp-docbook-document.c
|
||||
index 9b430b09..6ecaf316 100644
|
||||
--- a/libyelp/yelp-docbook-document.c
|
||||
+++ b/libyelp/yelp-docbook-document.c
|
||||
@@ -273,7 +273,7 @@ docbook_request_page (YelpDocument *document,
|
||||
priv->process_running = TRUE;
|
||||
g_object_ref (document);
|
||||
priv->thread = g_thread_new ("docbook-page",
|
||||
- (GThreadFunc) docbook_process,
|
||||
+ (GThreadFunc)(GCallback) docbook_process,
|
||||
document);
|
||||
break;
|
||||
case DOCBOOK_STATE_PARSING:
|
||||
@@ -495,7 +495,7 @@ docbook_reload (YelpDocbookDocument *docbook)
|
||||
priv->process_running = TRUE;
|
||||
g_object_ref (docbook);
|
||||
priv->thread = g_thread_new ("docbook-reload",
|
||||
- (GThreadFunc) docbook_process,
|
||||
+ (GThreadFunc)(GCallback) docbook_process,
|
||||
docbook);
|
||||
|
||||
g_mutex_unlock (&priv->mutex);
|
||||
@@ -1077,7 +1077,7 @@ docbook_index (YelpDocument *document)
|
||||
priv = GET_PRIV (document);
|
||||
g_object_ref (document);
|
||||
priv->index = g_thread_new ("docbook-index",
|
||||
- (GThreadFunc) docbook_index_threaded,
|
||||
+ (GThreadFunc)(GCallback) docbook_index_threaded,
|
||||
document);
|
||||
priv->index_running = TRUE;
|
||||
}
|
||||
diff --git a/libyelp/yelp-document.c b/libyelp/yelp-document.c
|
||||
index 6adbbb1d..c1eec9cc 100644
|
||||
--- a/libyelp/yelp-document.c
|
||||
+++ b/libyelp/yelp-document.c
|
||||
@@ -330,7 +330,7 @@ yelp_document_dispose (GObject *object)
|
||||
|
||||
if (document->priv->reqs_all) {
|
||||
g_slist_foreach (document->priv->reqs_all,
|
||||
- (GFunc) request_try_free,
|
||||
+ (GFunc)(GCallback) request_try_free,
|
||||
NULL);
|
||||
g_slist_free (document->priv->reqs_all);
|
||||
document->priv->reqs_all = NULL;
|
||||
@@ -338,7 +338,7 @@ yelp_document_dispose (GObject *object)
|
||||
|
||||
if (document->priv->reqs_search) {
|
||||
g_slist_foreach (document->priv->reqs_search,
|
||||
- (GFunc) request_try_free,
|
||||
+ (GFunc)(GCallback) request_try_free,
|
||||
NULL);
|
||||
g_slist_free (document->priv->reqs_search);
|
||||
document->priv->reqs_search = NULL;
|
||||
diff --git a/libyelp/yelp-help-list.c b/libyelp/yelp-help-list.c
|
||||
index 9005e48f..cbac98bf 100644
|
||||
--- a/libyelp/yelp-help-list.c
|
||||
+++ b/libyelp/yelp-help-list.c
|
||||
@@ -210,7 +210,7 @@ help_list_request_page (YelpDocument *document,
|
||||
priv->process_running = TRUE;
|
||||
g_object_ref (document);
|
||||
priv->thread = g_thread_new ("helplist-page",
|
||||
- (GThreadFunc) help_list_think,
|
||||
+ (GThreadFunc)(GCallback) help_list_think,
|
||||
document);
|
||||
}
|
||||
priv->pending = g_slist_prepend (priv->pending, g_strdup (page_id));
|
||||
diff --git a/libyelp/yelp-info-document.c b/libyelp/yelp-info-document.c
|
||||
index 7b532744..d55be325 100644
|
||||
--- a/libyelp/yelp-info-document.c
|
||||
+++ b/libyelp/yelp-info-document.c
|
||||
@@ -209,7 +209,7 @@ info_request_page (YelpDocument *document,
|
||||
priv->process_running = TRUE;
|
||||
g_object_ref (document);
|
||||
priv->thread = g_thread_new ("info-page",
|
||||
- (GThreadFunc) info_document_process,
|
||||
+ (GThreadFunc)(GCallback) info_document_process,
|
||||
document);
|
||||
break;
|
||||
case INFO_STATE_PARSING:
|
||||
diff --git a/libyelp/yelp-mallard-document.c b/libyelp/yelp-mallard-document.c
|
||||
index fc7c4d7c..74fc80ee 100644
|
||||
--- a/libyelp/yelp-mallard-document.c
|
||||
+++ b/libyelp/yelp-mallard-document.c
|
||||
@@ -287,7 +287,7 @@ mallard_request_page (YelpDocument *document,
|
||||
priv->thread_running = TRUE;
|
||||
g_object_ref (document);
|
||||
priv->thread = g_thread_new ("mallard-page",
|
||||
- (GThreadFunc) mallard_think,
|
||||
+ (GThreadFunc)(GCallback) mallard_think,
|
||||
document);
|
||||
}
|
||||
|
||||
@@ -1100,7 +1100,7 @@ mallard_index (YelpDocument *document)
|
||||
priv = GET_PRIV (document);
|
||||
g_object_ref (document);
|
||||
priv->index = g_thread_new ("mallard-index",
|
||||
- (GThreadFunc) mallard_index_threaded,
|
||||
+ (GThreadFunc)(GCallback) mallard_index_threaded,
|
||||
document);
|
||||
priv->index_running = TRUE;
|
||||
}
|
||||
@@ -1148,7 +1148,7 @@ mallard_monitor_changed (GFileMonitor *monitor,
|
||||
priv->thread_running = TRUE;
|
||||
g_object_ref (mallard);
|
||||
priv->thread = g_thread_new ("mallard-reload",
|
||||
- (GThreadFunc) mallard_think,
|
||||
+ (GThreadFunc)(GCallback) mallard_think,
|
||||
mallard);
|
||||
|
||||
g_mutex_unlock (&priv->mutex);
|
||||
diff --git a/libyelp/yelp-man-document.c b/libyelp/yelp-man-document.c
|
||||
index 4e165d57..ad7fab4f 100644
|
||||
--- a/libyelp/yelp-man-document.c
|
||||
+++ b/libyelp/yelp-man-document.c
|
||||
@@ -243,7 +243,7 @@ man_request_page (YelpDocument *document,
|
||||
yelp_document_set_page_id (document, priv->page_id, priv->page_id);
|
||||
yelp_document_set_root_id (document, priv->page_id, priv->page_id);
|
||||
priv->thread = g_thread_new ("man-page",
|
||||
- (GThreadFunc) man_document_process,
|
||||
+ (GThreadFunc)(GCallback) man_document_process,
|
||||
document);
|
||||
break;
|
||||
case MAN_STATE_PARSING:
|
||||
diff --git a/libyelp/yelp-simple-document.c b/libyelp/yelp-simple-document.c
|
||||
index 501d7881..595efa83 100644
|
||||
--- a/libyelp/yelp-simple-document.c
|
||||
+++ b/libyelp/yelp-simple-document.c
|
||||
@@ -131,7 +131,7 @@ yelp_simple_document_dispose (GObject *object)
|
||||
YelpSimpleDocument *document = YELP_SIMPLE_DOCUMENT (object);
|
||||
|
||||
if (document->priv->reqs) {
|
||||
- g_slist_foreach (document->priv->reqs, (GFunc) request_try_free, NULL);
|
||||
+ g_slist_foreach (document->priv->reqs, (GFunc)(GCallback) request_try_free, NULL);
|
||||
g_slist_free (document->priv->reqs);
|
||||
document->priv->reqs = NULL;
|
||||
}
|
||||
diff --git a/libyelp/yelp-transform.c b/libyelp/yelp-transform.c
|
||||
index 334438af..7a5dc86e 100644
|
||||
--- a/libyelp/yelp-transform.c
|
||||
+++ b/libyelp/yelp-transform.c
|
||||
@@ -298,7 +298,7 @@ yelp_transform_start (YelpTransform *transform,
|
||||
priv->running = TRUE;
|
||||
g_object_ref (transform);
|
||||
priv->thread = g_thread_new ("transform-run",
|
||||
- (GThreadFunc) transform_run,
|
||||
+ (GThreadFunc)(GCallback) transform_run,
|
||||
transform);
|
||||
g_mutex_unlock (&priv->mutex);
|
||||
|
||||
diff --git a/libyelp/yelp-uri.c b/libyelp/yelp-uri.c
|
||||
index 317beead..f20b167e 100644
|
||||
--- a/libyelp/yelp-uri.c
|
||||
+++ b/libyelp/yelp-uri.c
|
||||
@@ -298,7 +298,7 @@ resolve_start (YelpUri *uri)
|
||||
if (priv->resolver == NULL) {
|
||||
g_object_ref (uri);
|
||||
priv->resolver = g_thread_new ("uri-resolve",
|
||||
- (GThreadFunc) resolve_async,
|
||||
+ (GThreadFunc)(GCallback) resolve_async,
|
||||
uri);
|
||||
}
|
||||
}
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,63 +0,0 @@
|
||||
From 3b4245db2e954675d15f50a0e9d004e62a43a48c Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Popela <tpopela@redhat.com>
|
||||
Date: Mon, 23 Jul 2018 09:50:53 +0200
|
||||
Subject: [PATCH 02/17] Check whether document has a root element before
|
||||
accessing it.
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-docbook-document.c:562:13: note: Access to field 'ns' results in a dereference of a null pointer (loaded from field 'xmlcur')
|
||||
if (priv->xmlcur->ns) {
|
||||
^ ~~~~~~
|
||||
560| * unique value, and insert it into the in-memory tree */
|
||||
561| g_snprintf (autoidstr, 20, "//autoid-%d", ++autoid);
|
||||
562|-> if (priv->xmlcur->ns) {
|
||||
563| xmlNewNsProp (priv->xmlcur,
|
||||
564| xmlNewNs (priv->xmlcur, XML_XML_NAMESPACE, BAD_CAST "xml"),
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-docbook-document.c:608:16: note: Access to field 'children' results in a dereference of a null pointer (loaded from field 'xmlcur')
|
||||
for (cur = priv->xmlcur->children; cur; cur = cur->next) {
|
||||
^ ~~~~~~
|
||||
606| NULL);
|
||||
607|
|
||||
608|-> for (cur = priv->xmlcur->children; cur; cur = cur->next) {
|
||||
609| if (cur->type == XML_ELEMENT_NODE) {
|
||||
610| priv->xmlcur = cur;
|
||||
---
|
||||
libyelp/yelp-docbook-document.c | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libyelp/yelp-docbook-document.c b/libyelp/yelp-docbook-document.c
|
||||
index 6ecaf316..24746248 100644
|
||||
--- a/libyelp/yelp-docbook-document.c
|
||||
+++ b/libyelp/yelp-docbook-document.c
|
||||
@@ -309,6 +309,7 @@ docbook_process (YelpDocbookDocument *docbook)
|
||||
GFile *file = NULL;
|
||||
gchar *filepath = NULL;
|
||||
xmlDocPtr xmldoc = NULL;
|
||||
+ xmlNodePtr xmlcur = NULL;
|
||||
xmlChar *id = NULL;
|
||||
xmlParserCtxtPtr parserCtxt = NULL;
|
||||
GError *error;
|
||||
@@ -343,7 +344,10 @@ docbook_process (YelpDocbookDocument *docbook)
|
||||
XML_PARSE_DTDLOAD | XML_PARSE_NOCDATA |
|
||||
XML_PARSE_NOENT | XML_PARSE_NONET );
|
||||
|
||||
- if (xmldoc == NULL) {
|
||||
+ if (xmldoc)
|
||||
+ xmlcur = xmlDocGetRootElement (xmldoc);
|
||||
+
|
||||
+ if (xmldoc == NULL || xmlcur == NULL) {
|
||||
error = g_error_new (YELP_ERROR, YELP_ERROR_PROCESSING,
|
||||
_("The file ‘%s’ could not be parsed because it is"
|
||||
" not a well-formed XML document."),
|
||||
@@ -374,7 +378,7 @@ docbook_process (YelpDocbookDocument *docbook)
|
||||
priv->max_depth = 1;
|
||||
|
||||
priv->xmldoc = xmldoc;
|
||||
- priv->xmlcur = xmlDocGetRootElement (xmldoc);
|
||||
+ priv->xmlcur = xmlcur;
|
||||
|
||||
id = xmlGetProp (priv->xmlcur, BAD_CAST "id");
|
||||
if (!id)
|
||||
--
|
||||
2.19.1
|
||||
|
@ -1,44 +0,0 @@
|
||||
From 05fd1b7d267d83ad73f67bb99aac5c9ba069d4e5 Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Popela <tpopela@redhat.com>
|
||||
Date: Mon, 23 Jul 2018 10:09:43 +0200
|
||||
Subject: [PATCH 03/17] Check whether the index variable is valid before
|
||||
dereferencing it
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-docbook-document.c:1058: check_after_deref: Null-checking "index" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
|
||||
yelp-3.28.1/libyelp/yelp-docbook-document.c:1026: deref_ptr: Directly dereferencing pointer "index".
|
||||
yelp-3.28.1/libyelp/yelp-docbook-document.c:1054: deref_ptr: Directly dereferencing pointer "index".
|
||||
1052| if (filename != NULL)
|
||||
1053| g_free (filename);
|
||||
1054|-> if (index->doc != NULL)
|
||||
1055| xmlFreeDoc (index->doc);
|
||||
1056| if (index->doc_uri != NULL)
|
||||
---
|
||||
libyelp/yelp-docbook-document.c | 11 ++++++-----
|
||||
1 file changed, 6 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/libyelp/yelp-docbook-document.c b/libyelp/yelp-docbook-document.c
|
||||
index 24746248..afb49fb0 100644
|
||||
--- a/libyelp/yelp-docbook-document.c
|
||||
+++ b/libyelp/yelp-docbook-document.c
|
||||
@@ -1055,12 +1055,13 @@ docbook_index_threaded (YelpDocbookDocument *docbook)
|
||||
g_object_unref (file);
|
||||
if (filename != NULL)
|
||||
g_free (filename);
|
||||
- if (index->doc != NULL)
|
||||
- xmlFreeDoc (index->doc);
|
||||
- if (index->doc_uri != NULL)
|
||||
- g_free (index->doc_uri);
|
||||
- if (index != NULL)
|
||||
+ if (index != NULL) {
|
||||
+ if (index->doc != NULL)
|
||||
+ xmlFreeDoc (index->doc);
|
||||
+ if (index->doc_uri != NULL)
|
||||
+ g_free (index->doc_uri);
|
||||
g_free (index);
|
||||
+ }
|
||||
if (parserCtxt != NULL)
|
||||
xmlFreeParserCtxt (parserCtxt);
|
||||
|
||||
--
|
||||
2.19.1
|
||||
|
@ -1,134 +0,0 @@
|
||||
From 3ce3334e9f64eb9eb9f6f52608ca00c2fb74b516 Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Popela <tpopela@redhat.com>
|
||||
Date: Mon, 23 Jul 2018 10:30:35 +0200
|
||||
Subject: [PATCH 04/17] Correctly check whether virtual method is implemented
|
||||
before calling it
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-document.c:819:27: warning: Access to field 'request_page' results in a dereference of a null pointer (loaded from field 'g_class')
|
||||
g_return_val_if_fail (YELP_DOCUMENT_GET_CLASS (document)->request_page != NULL, FALSE);
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-document.c:943:27: warning: Access to field 'read_contents' results in a dereference of a null pointer (loaded from field 'g_class')
|
||||
g_return_val_if_fail (YELP_DOCUMENT_GET_CLASS (document)->read_contents != NULL, NULL);
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-document.c:1100:23: warning: Access to field 'finish_read' results in a dereference of a null pointer (loaded from field 'g_class')
|
||||
g_return_if_fail (YELP_DOCUMENT_GET_CLASS (document)->finish_read != NULL);
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-document.c:1141:27: warning: Access to field 'get_mime_type' results in a dereference of a null pointer (loaded from field 'g_class')
|
||||
g_return_val_if_fail (YELP_DOCUMENT_GET_CLASS (document)->get_mime_type != NULL, NULL);
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-document.c:1173:23: warning: Access to field 'index' results in a dereference of a null pointer (loaded from field 'g_class')
|
||||
g_return_if_fail (YELP_DOCUMENT_GET_CLASS (document)->index != NULL);
|
||||
---
|
||||
libyelp/yelp-document.c | 56 ++++++++++++++++++++++++++++++-----------
|
||||
1 file changed, 41 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/libyelp/yelp-document.c b/libyelp/yelp-document.c
|
||||
index c1eec9cc..d832d1ed 100644
|
||||
--- a/libyelp/yelp-document.c
|
||||
+++ b/libyelp/yelp-document.c
|
||||
@@ -815,17 +815,19 @@ yelp_document_request_page (YelpDocument *document,
|
||||
gpointer user_data,
|
||||
GDestroyNotify notify)
|
||||
{
|
||||
+ YelpDocumentClass *klass;
|
||||
+
|
||||
+ g_return_val_if_fail (document != NULL, FALSE);
|
||||
g_return_val_if_fail (YELP_IS_DOCUMENT (document), FALSE);
|
||||
- g_return_val_if_fail (YELP_DOCUMENT_GET_CLASS (document)->request_page != NULL, FALSE);
|
||||
+
|
||||
+ klass = YELP_DOCUMENT_GET_CLASS (document);
|
||||
+ g_return_val_if_fail (klass != NULL, FALSE);
|
||||
+ g_return_val_if_fail (klass->request_page != NULL, FALSE);
|
||||
|
||||
debug_print (DB_FUNCTION, "entering\n");
|
||||
|
||||
- return YELP_DOCUMENT_GET_CLASS (document)->request_page (document,
|
||||
- page_id,
|
||||
- cancellable,
|
||||
- callback,
|
||||
- user_data,
|
||||
- notify);
|
||||
+ return klass->request_page (document, page_id, cancellable, callback,
|
||||
+ user_data, notify);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -939,10 +941,16 @@ const gchar *
|
||||
yelp_document_read_contents (YelpDocument *document,
|
||||
const gchar *page_id)
|
||||
{
|
||||
+ YelpDocumentClass *klass;
|
||||
+
|
||||
+ g_return_val_if_fail (document != NULL, NULL);
|
||||
g_return_val_if_fail (YELP_IS_DOCUMENT (document), NULL);
|
||||
- g_return_val_if_fail (YELP_DOCUMENT_GET_CLASS (document)->read_contents != NULL, NULL);
|
||||
|
||||
- return YELP_DOCUMENT_GET_CLASS (document)->read_contents (document, page_id);
|
||||
+ klass = YELP_DOCUMENT_GET_CLASS (document);
|
||||
+ g_return_val_if_fail (klass != NULL, FALSE);
|
||||
+ g_return_val_if_fail (klass->read_contents != NULL, FALSE);
|
||||
+
|
||||
+ return klass->read_contents (document, page_id);
|
||||
}
|
||||
|
||||
static const gchar *
|
||||
@@ -1096,10 +1104,16 @@ void
|
||||
yelp_document_finish_read (YelpDocument *document,
|
||||
const gchar *contents)
|
||||
{
|
||||
+ YelpDocumentClass *klass;
|
||||
+
|
||||
+ g_return_if_fail (document != NULL);
|
||||
g_return_if_fail (YELP_IS_DOCUMENT (document));
|
||||
- g_return_if_fail (YELP_DOCUMENT_GET_CLASS (document)->finish_read != NULL);
|
||||
|
||||
- YELP_DOCUMENT_GET_CLASS (document)->finish_read (document, contents);
|
||||
+ klass = YELP_DOCUMENT_GET_CLASS (document);
|
||||
+ g_return_if_fail (klass != NULL);
|
||||
+ g_return_if_fail (klass->finish_read != NULL);
|
||||
+
|
||||
+ klass->finish_read (document, contents);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1137,10 +1151,16 @@ gchar *
|
||||
yelp_document_get_mime_type (YelpDocument *document,
|
||||
const gchar *page_id)
|
||||
{
|
||||
+ YelpDocumentClass *klass;
|
||||
+
|
||||
+ g_return_val_if_fail (document != NULL, NULL);
|
||||
g_return_val_if_fail (YELP_IS_DOCUMENT (document), NULL);
|
||||
- g_return_val_if_fail (YELP_DOCUMENT_GET_CLASS (document)->get_mime_type != NULL, NULL);
|
||||
|
||||
- return YELP_DOCUMENT_GET_CLASS (document)->get_mime_type (document, page_id);
|
||||
+ klass = YELP_DOCUMENT_GET_CLASS (document);
|
||||
+ g_return_val_if_fail (klass != NULL, NULL);
|
||||
+ g_return_val_if_fail (klass->get_mime_type != NULL, FALSE);
|
||||
+
|
||||
+ return klass->get_mime_type (document, page_id);
|
||||
}
|
||||
|
||||
static gchar *
|
||||
@@ -1169,10 +1189,16 @@ document_get_mime_type (YelpDocument *document,
|
||||
void
|
||||
yelp_document_index (YelpDocument *document)
|
||||
{
|
||||
+ YelpDocumentClass *klass;
|
||||
+
|
||||
+ g_return_if_fail (document != NULL);
|
||||
g_return_if_fail (YELP_IS_DOCUMENT (document));
|
||||
- g_return_if_fail (YELP_DOCUMENT_GET_CLASS (document)->index != NULL);
|
||||
|
||||
- YELP_DOCUMENT_GET_CLASS (document)->index (document);
|
||||
+ klass = YELP_DOCUMENT_GET_CLASS (document);
|
||||
+ g_return_if_fail (klass != NULL);
|
||||
+ g_return_if_fail (klass->index != NULL);
|
||||
+
|
||||
+ klass->index (document);
|
||||
}
|
||||
|
||||
static void
|
||||
--
|
||||
2.19.1
|
||||
|
@ -1,36 +0,0 @@
|
||||
From 92974634d285448bbf2007a9bcfedf247a26a39b Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Popela <tpopela@redhat.com>
|
||||
Date: Mon, 23 Jul 2018 10:55:52 +0200
|
||||
Subject: [PATCH 05/17] Check whether variable node is set before dereferencing
|
||||
it
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-info-parser.c:766: dereference: Dereferencing a pointer that might be null "node" when calling "strncmp".
|
||||
---
|
||||
libyelp/yelp-info-parser.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libyelp/yelp-info-parser.c b/libyelp/yelp-info-parser.c
|
||||
index d0e767bc..0c383bfe 100644
|
||||
--- a/libyelp/yelp-info-parser.c
|
||||
+++ b/libyelp/yelp-info-parser.c
|
||||
@@ -734,7 +734,7 @@ process_page (GtkTreeStore *tree,
|
||||
g_free (next);
|
||||
next = NULL;
|
||||
}
|
||||
- if (g_str_equal (node, "Top") && prev != NULL) {
|
||||
+ if (node && g_str_equal (node, "Top") && prev != NULL) {
|
||||
g_free (prev);
|
||||
prev = NULL;
|
||||
}
|
||||
@@ -763,7 +763,7 @@ process_page (GtkTreeStore *tree,
|
||||
}
|
||||
if (prev && g_ascii_strncasecmp (prev, "(dir)", 5))
|
||||
{
|
||||
- if (strncmp (node, "Top", 3)) {
|
||||
+ if (node && strncmp (node, "Top", 3)) {
|
||||
/* Special case the Top node to always appear first */
|
||||
} else {
|
||||
page = node2page (nodes2pages, prev);
|
||||
--
|
||||
2.19.1
|
||||
|
@ -1,32 +0,0 @@
|
||||
From d7d1c089196e4e1bef314d6d6a01caffd6bba1da Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Popela <tpopela@redhat.com>
|
||||
Date: Mon, 23 Jul 2018 10:57:33 +0200
|
||||
Subject: [PATCH 06/17] Fix a use of an uninitialized variable
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-info-parser.c:1174: var_decl: Declaring variable "menu_node" without initializer.
|
||||
yelp-3.28.1/libyelp/yelp-info-parser.c:1310: uninit_use: Using uninitialized value "menu_node".
|
||||
1308| else if (*(menuitems[i]) != '\0') {
|
||||
1309| tmp = g_strconcat ("\n", first_non_space (menuitems[i]), NULL);
|
||||
1310|-> xmlNewTextChild (mholder ? mholder : menu_node,
|
||||
1311| NULL, BAD_CAST "para1",
|
||||
1312| BAD_CAST tmp);
|
||||
---
|
||||
libyelp/yelp-info-parser.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libyelp/yelp-info-parser.c b/libyelp/yelp-info-parser.c
|
||||
index 0c383bfe..ed16e373 100644
|
||||
--- a/libyelp/yelp-info-parser.c
|
||||
+++ b/libyelp/yelp-info-parser.c
|
||||
@@ -1171,7 +1171,7 @@ yelp_info_parse_menu (GtkTreeStore *tree, xmlNodePtr *node,
|
||||
gchar **split;
|
||||
gchar **menuitems;
|
||||
gchar *tmp = NULL;
|
||||
- xmlNodePtr newnode, menu_node, mholder = NULL;
|
||||
+ xmlNodePtr newnode, menu_node = NULL, mholder = NULL;
|
||||
int i=0;
|
||||
|
||||
split = g_strsplit (page_content, "* Menu:", 2);
|
||||
--
|
||||
2.19.1
|
||||
|
@ -1,29 +0,0 @@
|
||||
From 79e59e9d374e635ca65b4d24c59fffacc5425b1a Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Popela <tpopela@redhat.com>
|
||||
Date: Mon, 23 Jul 2018 11:04:35 +0200
|
||||
Subject: [PATCH 07/17] Check whether the index variable is valid before
|
||||
dereferencing it
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-mallard-document.c:1002: deref_ptr: Directly dereferencing pointer "index".
|
||||
yelp-3.28.1/libyelp/yelp-mallard-document.c:1073: check_after_deref: Null-checking "index" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
|
||||
---
|
||||
libyelp/yelp-mallard-document.c | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libyelp/yelp-mallard-document.c b/libyelp/yelp-mallard-document.c
|
||||
index 74fc80ee..9c006efc 100644
|
||||
--- a/libyelp/yelp-mallard-document.c
|
||||
+++ b/libyelp/yelp-mallard-document.c
|
||||
@@ -1070,8 +1070,7 @@ mallard_index_threaded (YelpMallardDocument *mallard)
|
||||
xmlXPathFreeContext (xpath);
|
||||
if (index->doc != NULL)
|
||||
xmlFreeDoc (index->doc);
|
||||
- if (index != NULL)
|
||||
- g_free (index);
|
||||
+ g_free (index);
|
||||
if (parserCtxt != NULL)
|
||||
xmlFreeParserCtxt (parserCtxt);
|
||||
g_object_unref (pagefile);
|
||||
--
|
||||
2.19.1
|
||||
|
@ -1,35 +0,0 @@
|
||||
From 33bf987013a6f7c875dc643a74e11beba4a12f03 Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Popela <tpopela@redhat.com>
|
||||
Date: Mon, 23 Jul 2018 11:15:10 +0200
|
||||
Subject: [PATCH 08/17] Check whether parser is null before dereferencing it
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-man-parser.c:445: var_compare_op: Comparing "parser" to null implies that "parser" might be null.
|
||||
yelp-3.28.1/libyelp/yelp-man-parser.c:449: var_deref_op: Dereferencing null pointer "parser".
|
||||
---
|
||||
libyelp/yelp-man-parser.c | 10 ++++++----
|
||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/libyelp/yelp-man-parser.c b/libyelp/yelp-man-parser.c
|
||||
index 46073a2e..8d097820 100644
|
||||
--- a/libyelp/yelp-man-parser.c
|
||||
+++ b/libyelp/yelp-man-parser.c
|
||||
@@ -442,10 +442,12 @@ void
|
||||
yelp_man_parser_free (YelpManParser *parser)
|
||||
{
|
||||
guint k;
|
||||
- if (parser) {
|
||||
- for (k=0; k<MAN_FONTS; k++)
|
||||
- g_free (parser->font_registers[k]);
|
||||
- }
|
||||
+
|
||||
+ if (parser == NULL)
|
||||
+ return;
|
||||
+
|
||||
+ for (k=0; k<MAN_FONTS; k++)
|
||||
+ g_free (parser->font_registers[k]);
|
||||
g_string_free (parser->accumulator, TRUE);
|
||||
g_free (parser->title_str);
|
||||
g_free (parser->section);
|
||||
--
|
||||
2.19.1
|
||||
|
@ -1,40 +0,0 @@
|
||||
From b1d8fce69f59581769e5db87e7e20cdc3c27d685 Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Popela <tpopela@redhat.com>
|
||||
Date: Mon, 23 Jul 2018 11:30:54 +0200
|
||||
Subject: [PATCH 09/17] Avoid possible overrun while comparing to MAN_FONTS
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-man-parser.c:464: cond_at_most: Checking "k > 8U" implies that "k" may be up to 8 on the false branch.
|
||||
yelp-3.28.1/libyelp/yelp-man-parser.c:469: overrun-local: Overrunning array "parser->font_registers" of 8 8-byte elements at element index 8 (byte offset 64) using index "k" (which evaluates to 8).
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-man-parser.c:476: assignment: Assigning: "k" = "parser->current_font".
|
||||
yelp-3.28.1/libyelp/yelp-man-parser.c:477: cond_at_most: Checking "k > 8U" implies that "k" and "parser->current_font" may be up to 8 on the false branch.
|
||||
yelp-3.28.1/libyelp/yelp-man-parser.c:477: overrun-local: Overrunning array "parser->font_registers" of 8 8-byte elements at element index 8 (byte offset 64) using index "k" (which evaluates to 8).
|
||||
---
|
||||
libyelp/yelp-man-parser.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libyelp/yelp-man-parser.c b/libyelp/yelp-man-parser.c
|
||||
index 8d097820..00e66e00 100644
|
||||
--- a/libyelp/yelp-man-parser.c
|
||||
+++ b/libyelp/yelp-man-parser.c
|
||||
@@ -463,7 +463,7 @@ yelp_man_parser_free (YelpManParser *parser)
|
||||
static void
|
||||
set_font_register (YelpManParser *parser, guint k, const gchar* name)
|
||||
{
|
||||
- if (k > MAN_FONTS) {
|
||||
+ if (k >= MAN_FONTS) {
|
||||
g_warning ("Tried to set nonexistant font register %u to %s",
|
||||
k, name);
|
||||
return;
|
||||
@@ -476,7 +476,7 @@ static const gchar*
|
||||
get_font (const YelpManParser *parser)
|
||||
{
|
||||
guint k = parser->current_font;
|
||||
- if (k > MAN_FONTS ||
|
||||
+ if (k >= MAN_FONTS ||
|
||||
parser->font_registers[k] == NULL) {
|
||||
|
||||
g_warning ("Tried to get nonexistant font register %u", k);
|
||||
--
|
||||
2.19.1
|
||||
|
@ -1,37 +0,0 @@
|
||||
From 526febe57f9c05e3ca8a08e4016c5b36b8195406 Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Popela <tpopela@redhat.com>
|
||||
Date: Mon, 23 Jul 2018 11:43:51 +0200
|
||||
Subject: [PATCH 10/17] Increase the size of string variables passed to sscanf
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-man-parser.c:549: error[invalidScanfFormatWidth]: Width 10 given in format string (no. 2) is larger than destination buffer 'name[10]', use %9s to prevent overflowing it.
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-man-parser.c:926: error[invalidScanfFormatWidth]: Width 16 given in format string (no. 1) is larger than destination buffer 'name[16]', use %15s to prevent overflowing it.
|
||||
---
|
||||
libyelp/yelp-man-parser.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libyelp/yelp-man-parser.c b/libyelp/yelp-man-parser.c
|
||||
index 00e66e00..f8eb69f6 100644
|
||||
--- a/libyelp/yelp-man-parser.c
|
||||
+++ b/libyelp/yelp-man-parser.c
|
||||
@@ -545,7 +545,7 @@ parse_prologue_line (YelpManParser *parser, GError **error)
|
||||
static gboolean
|
||||
parse_xf (YelpManParser *parser, GError **error)
|
||||
{
|
||||
- gchar name[10];
|
||||
+ gchar name[11];
|
||||
guint k;
|
||||
|
||||
if (SSCANF ("x f%*s %u %10s", 2, &k, name)) {
|
||||
@@ -920,7 +920,7 @@ append_nbsps (YelpManParser *parser, guint k)
|
||||
static gboolean
|
||||
parse_C (YelpManParser *parser, GError **error)
|
||||
{
|
||||
- gchar name[16];
|
||||
+ gchar name[17];
|
||||
gunichar code = 0;
|
||||
guint k;
|
||||
gint len;
|
||||
--
|
||||
2.19.1
|
||||
|
@ -1,27 +0,0 @@
|
||||
From c5abcf98fdbb437574f916b6b2c1fa2f3a89219f Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Popela <tpopela@redhat.com>
|
||||
Date: Mon, 23 Jul 2018 11:45:36 +0200
|
||||
Subject: [PATCH 11/17] Initialize ws_start variable before returning it
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-man-parser.c:1194: var_decl: Declaring variable "ws_start" without initializer.
|
||||
yelp-3.28.1/libyelp/yelp-man-parser.c:1202: uninit_use: Using uninitialized value "ws_start".
|
||||
---
|
||||
libyelp/yelp-man-parser.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libyelp/yelp-man-parser.c b/libyelp/yelp-man-parser.c
|
||||
index f8eb69f6..302ccb31 100644
|
||||
--- a/libyelp/yelp-man-parser.c
|
||||
+++ b/libyelp/yelp-man-parser.c
|
||||
@@ -1193,7 +1193,7 @@ static gchar *
|
||||
find_contiguous_whitespace (gchar *text, guint ws_len)
|
||||
{
|
||||
guint counter = 0;
|
||||
- gchar *ws_start;
|
||||
+ gchar *ws_start = NULL;
|
||||
while (*text) {
|
||||
if (g_unichar_isspace (g_utf8_get_char (text))) {
|
||||
if (!counter) ws_start = text;
|
||||
--
|
||||
2.19.1
|
||||
|
@ -1,32 +0,0 @@
|
||||
From 3fe0efe361ca9fb697f82d67e0bd9036970f9884 Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Popela <tpopela@redhat.com>
|
||||
Date: Mon, 23 Jul 2018 11:53:13 +0200
|
||||
Subject: [PATCH 12/17] Swap the if() checks to avoid possible null pointer
|
||||
dereference
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-transform.c:501: deref_ptr: Directly dereferencing pointer "ctxt".
|
||||
yelp-3.28.1/libyelp/yelp-transform.c:504: check_after_deref: Null-checking "ctxt" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
|
||||
---
|
||||
libyelp/yelp-transform.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libyelp/yelp-transform.c b/libyelp/yelp-transform.c
|
||||
index 7a5dc86e..0a1c8058 100644
|
||||
--- a/libyelp/yelp-transform.c
|
||||
+++ b/libyelp/yelp-transform.c
|
||||
@@ -498,10 +498,10 @@ xslt_yelp_document (xsltTransformContextPtr ctxt,
|
||||
|
||||
debug_print (DB_FUNCTION, "entering\n");
|
||||
|
||||
- if (ctxt->state == XSLT_STATE_STOPPED)
|
||||
+ if (!ctxt || !node || !inst || !comp)
|
||||
return;
|
||||
|
||||
- if (!ctxt || !node || !inst || !comp)
|
||||
+ if (ctxt->state == XSLT_STATE_STOPPED)
|
||||
return;
|
||||
|
||||
transform = YELP_TRANSFORM (ctxt->_private);
|
||||
--
|
||||
2.19.1
|
||||
|
@ -1,33 +0,0 @@
|
||||
From e3e9e7961b721d2bdbf50ca81fdc869170289e28 Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Popela <tpopela@redhat.com>
|
||||
Date: Mon, 23 Jul 2018 11:56:21 +0200
|
||||
Subject: [PATCH 13/17] Check the strstr() return value before using it
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-uri-builder.c:81: returned_null: "strstr" returns null (checked 10 out of 12 times).
|
||||
yelp-3.28.1/libyelp/yelp-uri-builder.c:81: var_assigned: Assigning: "resource" = null return value from "strstr".
|
||||
yelp-3.28.1/libyelp/yelp-uri-builder.c:82: dereference: Incrementing a pointer which might be null: "resource".
|
||||
---
|
||||
libyelp/yelp-uri-builder.c | 7 ++++---
|
||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/libyelp/yelp-uri-builder.c b/libyelp/yelp-uri-builder.c
|
||||
index bb34d202..58a53ac9 100644
|
||||
--- a/libyelp/yelp-uri-builder.c
|
||||
+++ b/libyelp/yelp-uri-builder.c
|
||||
@@ -78,9 +78,10 @@ build_yelp_uri (const gchar *uri_str)
|
||||
memmove (uri, uri + BOGUS_PREFIX_LEN, strlen (uri) - BOGUS_PREFIX_LEN + 1);
|
||||
|
||||
/* Remove the leading slash */
|
||||
- resource = strstr (uri, ":");
|
||||
- resource++;
|
||||
- memmove (resource, resource + 1, strlen (resource));
|
||||
+ if ((resource = strstr (uri, ":"))) {
|
||||
+ resource++;
|
||||
+ memmove (resource, resource + 1, strlen (resource));
|
||||
+ }
|
||||
|
||||
/* Remove the trailing slash if any */
|
||||
path_len = strlen (uri);
|
||||
--
|
||||
2.19.1
|
||||
|
@ -1,27 +0,0 @@
|
||||
From 16bcefc7eeca2443e79b85e5257f66ef5b50eaf0 Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Popela <tpopela@redhat.com>
|
||||
Date: Tue, 24 Jul 2018 12:45:42 +0200
|
||||
Subject: [PATCH 14/17] Check variable before dereferencing it
|
||||
|
||||
yelp-3.28.1/libyelp/yelp-mallard-document.c:341: var_compare_op: Comparing "path" to null implies that "path" might be null.
|
||||
yelp-3.28.1/libyelp/yelp-mallard-document.c:346: var_deref_op: Dereferencing null pointer "path".
|
||||
---
|
||||
libyelp/yelp-mallard-document.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libyelp/yelp-mallard-document.c b/libyelp/yelp-mallard-document.c
|
||||
index 9c006efc..b3319310 100644
|
||||
--- a/libyelp/yelp-mallard-document.c
|
||||
+++ b/libyelp/yelp-mallard-document.c
|
||||
@@ -345,7 +345,7 @@ mallard_think (YelpMallardDocument *mallard)
|
||||
*/
|
||||
error = g_error_new (YELP_ERROR, YELP_ERROR_NOT_FOUND,
|
||||
_("The directory ‘%s’ does not exist."),
|
||||
- path[0]);
|
||||
+ path && path[0] ? path[0] : "NULL");
|
||||
yelp_document_error_pending ((YelpDocument *) mallard, error);
|
||||
g_error_free (error);
|
||||
goto done;
|
||||
--
|
||||
2.19.1
|
||||
|
@ -1,32 +0,0 @@
|
||||
From a49c3d4b94dbfabefe81d2c6d903c53c252bf78a Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Popela <tpopela@redhat.com>
|
||||
Date: Fri, 12 Oct 2018 11:04:31 +0200
|
||||
Subject: [PATCH 15/17] Remove unused variable
|
||||
|
||||
4. yelp-3.28.1/libyelp/yelp-info-parser.c:959:2: note: Value stored to 'pages' is never read
|
||||
pages = 0;
|
||||
^ ~
|
||||
957| (GDestroyNotify) gtk_tree_iter_free);
|
||||
958|
|
||||
959|-> pages = 0;
|
||||
960| for (ptr = page_list; *ptr != NULL; ptr++)
|
||||
961| {
|
||||
---
|
||||
libyelp/yelp-info-parser.c | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/libyelp/yelp-info-parser.c b/libyelp/yelp-info-parser.c
|
||||
index ed16e373..7b718ea0 100644
|
||||
--- a/libyelp/yelp-info-parser.c
|
||||
+++ b/libyelp/yelp-info-parser.c
|
||||
@@ -956,7 +956,6 @@ GtkTreeStore
|
||||
nodes2iters = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
|
||||
(GDestroyNotify) gtk_tree_iter_free);
|
||||
|
||||
- pages = 0;
|
||||
for (ptr = page_list; *ptr != NULL; ptr++)
|
||||
{
|
||||
if (page_type (*ptr) != PAGE_NODE) continue;
|
||||
--
|
||||
2.19.1
|
||||
|
@ -1,225 +0,0 @@
|
||||
From 7076be534597dadba5c3b3bcfdd10a93333fbc43 Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Popela <tpopela@redhat.com>
|
||||
Date: Fri, 12 Oct 2018 12:11:32 +0200
|
||||
Subject: [PATCH 16/17] Fix possible double free
|
||||
|
||||
Error: CLANG_WARNING:
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:931:5: warning: Attempt to free released memory
|
||||
g_free (query);
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:259:9: note: Assuming the condition is false
|
||||
if (priv->doctype != YELP_URI_DOCUMENT_TYPE_UNRESOLVED)
|
||||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:259:5: note: Taking false branch
|
||||
if (priv->doctype != YELP_URI_DOCUMENT_TYPE_UNRESOLVED)
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:262:9: note: Assuming the condition is false
|
||||
if (priv->res_base)
|
||||
^~~~~~~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:262:5: note: Taking false branch
|
||||
if (priv->res_base)
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:266:5: note: Calling 'resolve_sync'
|
||||
resolve_sync (uri);
|
||||
^~~~~~~~~~~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:311:9: note: Assuming the condition is false
|
||||
if (g_str_has_prefix (priv->res_arg, "ghelp:")
|
||||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:311:9: note: Left side of '||' is false
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:312:12: note: Assuming the condition is false
|
||||
|| g_str_has_prefix (priv->res_arg, "gnome-help:")) {
|
||||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:311:5: note: Taking false branch
|
||||
if (g_str_has_prefix (priv->res_arg, "ghelp:")
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:315:14: note: Assuming the condition is true
|
||||
else if (g_str_has_prefix (priv->res_arg, "help:")) {
|
||||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:315:10: note: Taking true branch
|
||||
else if (g_str_has_prefix (priv->res_arg, "help:")) {
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:316:9: note: Calling 'resolve_help_uri'
|
||||
resolve_help_uri (uri);
|
||||
^~~~~~~~~~~~~~~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:856:9: note: Assuming 'colon' is non-null
|
||||
if (!colon) {
|
||||
^~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:856:5: note: Taking false branch
|
||||
if (!colon) {
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:862:21: note: Assuming the condition is true
|
||||
for (c = colon; *c != '\0'; c++) {
|
||||
^~~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:862:5: note: Loop condition is true. Entering loop body
|
||||
for (c = colon; *c != '\0'; c++) {
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:863:13: note: Assuming the condition is false
|
||||
if (*c == '#' && hash == NULL)
|
||||
^~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:863:23: note: Left side of '&&' is false
|
||||
if (*c == '#' && hash == NULL)
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:865:18: note: Assuming the condition is false
|
||||
else if (*c == '?' && query == NULL && hash == NULL)
|
||||
^~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:865:28: note: Left side of '&&' is false
|
||||
else if (*c == '?' && query == NULL && hash == NULL)
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:867:18: note: Assuming the condition is false
|
||||
else if (*c == '/' && slash == NULL && query == NULL && hash == NULL)
|
||||
^~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:867:28: note: Left side of '&&' is false
|
||||
else if (*c == '/' && slash == NULL && query == NULL && hash == NULL)
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:862:21: note: Assuming the condition is true
|
||||
for (c = colon; *c != '\0'; c++) {
|
||||
^~~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:862:5: note: Loop condition is true. Entering loop body
|
||||
for (c = colon; *c != '\0'; c++) {
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:863:13: note: Assuming the condition is false
|
||||
if (*c == '#' && hash == NULL)
|
||||
^~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:863:23: note: Left side of '&&' is false
|
||||
if (*c == '#' && hash == NULL)
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:865:18: note: Assuming the condition is true
|
||||
else if (*c == '?' && query == NULL && hash == NULL)
|
||||
^~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:865:18: note: Left side of '&&' is true
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:865:18: note: Left side of '&&' is true
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:865:14: note: Taking true branch
|
||||
else if (*c == '?' && query == NULL && hash == NULL)
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:862:21: note: Assuming the condition is true
|
||||
for (c = colon; *c != '\0'; c++) {
|
||||
^~~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:862:5: note: Loop condition is true. Entering loop body
|
||||
for (c = colon; *c != '\0'; c++) {
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:863:13: note: Assuming the condition is true
|
||||
if (*c == '#' && hash == NULL)
|
||||
^~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:863:13: note: Left side of '&&' is true
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:863:9: note: Taking true branch
|
||||
if (*c == '#' && hash == NULL)
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:862:21: note: Assuming the condition is false
|
||||
for (c = colon; *c != '\0'; c++) {
|
||||
^~~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:862:5: note: Loop condition is false. Execution continues on line 871
|
||||
for (c = colon; *c != '\0'; c++) {
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:871:9: note: Left side of '||' is false
|
||||
if (slash || query || hash)
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:871:24: note: Left side of '||' is true
|
||||
if (slash || query || hash)
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:873:32: note: '?' condition is false
|
||||
(slash ? slash : (query ? query : hash)) - colon - 1);
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:873:49: note: '?' condition is true
|
||||
(slash ? slash : (query ? query : hash)) - colon - 1);
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:877:15: note: Left side of '&&' is false
|
||||
if (slash && (query || hash))
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:880:10: note: Taking false branch
|
||||
else if (slash)
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:883:9: note: Assuming 'query' is null
|
||||
if (query && hash)
|
||||
^~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:883:15: note: Left side of '&&' is false
|
||||
if (query && hash)
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:886:14: note: Assuming 'query' is null
|
||||
else if (query)
|
||||
^~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:886:10: note: Taking false branch
|
||||
else if (query)
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:889:9: note: Assuming 'query' is null
|
||||
if (query) {
|
||||
^~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:889:5: note: Taking false branch
|
||||
if (query) {
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:907:9: note: Assuming 'hash' is null
|
||||
if (hash)
|
||||
^~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:907:5: note: Taking false branch
|
||||
if (hash)
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:910:22: note: '?' condition is false
|
||||
priv->page_id = (slash ? slash : g_strdup ("index"));
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:913:9: note: Assuming 'hash' is non-null
|
||||
if (hash)
|
||||
^~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:913:5: note: Taking true branch
|
||||
if (hash)
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:915:9: note: Assuming the condition is true
|
||||
if (priv->frag_id && g_str_has_prefix (priv->frag_id, "search=")) {
|
||||
^~~~~~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:915:9: note: Left side of '&&' is true
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:915:26: note: Assuming the condition is true
|
||||
if (priv->frag_id && g_str_has_prefix (priv->frag_id, "search=")) {
|
||||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:915:5: note: Taking true branch
|
||||
if (priv->frag_id && g_str_has_prefix (priv->frag_id, "search=")) {
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:916:9: note: Memory is released
|
||||
g_free (priv->frag_id);
|
||||
^~~~~~~~~~~~~~~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:923:34: note: Assuming the condition is false
|
||||
priv->page_id ? "/" : "",
|
||||
^~~~~~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:923:34: note: '?' condition is false
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:924:34: note: '?' condition is false
|
||||
priv->page_id ? priv->page_id : "",
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:925:34: note: Assuming 'query' is non-null
|
||||
query ? "?" : "",
|
||||
^~~~~
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:925:34: note: '?' condition is true
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:926:34: note: '?' condition is true
|
||||
query ? query : "",
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:927:34: note: '?' condition is false
|
||||
priv->frag_id ? "#" : "",
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:928:34: note: '?' condition is false
|
||||
priv->frag_id ? priv->frag_id : "",
|
||||
^
|
||||
yelp-3.28.1/libyelp/yelp-uri.c:931:5: note: Attempt to free released memory
|
||||
g_free (query);
|
||||
^~~~~~~~~~~~~~
|
||||
929| NULL);
|
||||
930|
|
||||
931|-> g_free (query);
|
||||
932| g_free (document);
|
||||
933| return;
|
||||
---
|
||||
libyelp/yelp-uri.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libyelp/yelp-uri.c b/libyelp/yelp-uri.c
|
||||
index f20b167e..385cb837 100644
|
||||
--- a/libyelp/yelp-uri.c
|
||||
+++ b/libyelp/yelp-uri.c
|
||||
@@ -928,7 +928,8 @@ resolve_help_uri (YelpUri *uri)
|
||||
priv->frag_id ? priv->frag_id : "",
|
||||
NULL);
|
||||
|
||||
- g_free (query);
|
||||
+ if (query)
|
||||
+ g_free (query);
|
||||
g_free (document);
|
||||
return;
|
||||
}
|
||||
--
|
||||
2.19.1
|
||||
|
@ -1,147 +0,0 @@
|
||||
From 2b2fde7b980985c45ddbd77c935ce43350006810 Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Popela <tpopela@redhat.com>
|
||||
Date: Fri, 12 Oct 2018 12:53:43 +0200
|
||||
Subject: [PATCH 17/17] Remove the unused encoding and language code from
|
||||
YelpManDocument
|
||||
|
||||
Error: UNUSED_VALUE (CWE-563): [#def25]
|
||||
yelp-3.28.1/libyelp/yelp-man-document.c:422: value_overwrite: Overwriting previous write to "encoding" with value from "langmap[i].encoding".
|
||||
yelp-3.28.1/libyelp/yelp-man-document.c:416: assigned_pointer: Assigning value from ""ISO-8859-1"" to "encoding" here, but that stored value is overwritten before it can be used.
|
||||
414| encoding = g_getenv("MAN_ENCODING");
|
||||
415| if (encoding == NULL)
|
||||
416|-> encoding = "ISO-8859-1";
|
||||
417|
|
||||
418| if (language != NULL) {
|
||||
|
||||
Error: CLANG_WARNING: [#def26]
|
||||
yelp-3.28.1/libyelp/yelp-man-document.c:416:2: warning: Value stored to 'encoding' is never read
|
||||
encoding = "ISO-8859-1";
|
||||
^ ~~~~~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-man-document.c:416:2: note: Value stored to 'encoding' is never read
|
||||
encoding = "ISO-8859-1";
|
||||
^ ~~~~~~~~~~~~
|
||||
414| encoding = g_getenv("MAN_ENCODING");
|
||||
415| if (encoding == NULL)
|
||||
416|-> encoding = "ISO-8859-1";
|
||||
417|
|
||||
418| if (language != NULL) {
|
||||
|
||||
Error: CLANG_WARNING: [#def27]
|
||||
yelp-3.28.1/libyelp/yelp-man-document.c:422:3: warning: Value stored to 'encoding' is never read
|
||||
encoding = langmap[i].encoding;
|
||||
^ ~~~~~~~~~~~~~~~~~~~
|
||||
yelp-3.28.1/libyelp/yelp-man-document.c:422:3: note: Value stored to 'encoding' is never read
|
||||
encoding = langmap[i].encoding;
|
||||
^ ~~~~~~~~~~~~~~~~~~~
|
||||
420| for (i = 0; langmap[i].language != NULL; i++) {
|
||||
421| if (g_str_equal (language, langmap[i].language)) {
|
||||
422|-> encoding = langmap[i].encoding;
|
||||
423| break;
|
||||
424| }
|
||||
---
|
||||
libyelp/yelp-man-document.c | 75 -------------------------------------
|
||||
1 file changed, 75 deletions(-)
|
||||
|
||||
diff --git a/libyelp/yelp-man-document.c b/libyelp/yelp-man-document.c
|
||||
index ad7fab4f..a18248ca 100644
|
||||
--- a/libyelp/yelp-man-document.c
|
||||
+++ b/libyelp/yelp-man-document.c
|
||||
@@ -61,62 +61,6 @@ struct _YelpManDocumentPrivate {
|
||||
guint error;
|
||||
};
|
||||
|
||||
-typedef struct _YelpLangEncodings YelpLangEncodings;
|
||||
-struct _YelpLangEncodings {
|
||||
- const gchar *language;
|
||||
- const gchar *encoding;
|
||||
-};
|
||||
-/* http://www.w3.org/International/O-charset-lang.html */
|
||||
-static const YelpLangEncodings langmap[] = {
|
||||
- { "C", "ISO-8859-1" },
|
||||
- { "af", "ISO-8859-1" },
|
||||
- { "ar", "ISO-8859-6" },
|
||||
- { "bg", "ISO-8859-5" },
|
||||
- { "be", "ISO-8859-5" },
|
||||
- { "ca", "ISO-8859-1" },
|
||||
- { "cs", "ISO-8859-2" },
|
||||
- { "da", "ISO-8859-1" },
|
||||
- { "de", "ISO-8859-1" },
|
||||
- { "el", "ISO-8859-7" },
|
||||
- { "en", "ISO-8859-1" },
|
||||
- { "eo", "ISO-8859-3" },
|
||||
- { "es", "ISO-8859-1" },
|
||||
- { "et", "ISO-8859-15" },
|
||||
- { "eu", "ISO-8859-1" },
|
||||
- { "fi", "ISO-8859-1" },
|
||||
- { "fo", "ISO-8859-1" },
|
||||
- { "fr", "ISO-8859-1" },
|
||||
- { "ga", "ISO-8859-1" },
|
||||
- { "gd", "ISO-8859-1" },
|
||||
- { "gl", "ISO-8859-1" },
|
||||
- { "hu", "ISO-8859-2" },
|
||||
- { "id", "ISO-8859-1" }, /* is this right */
|
||||
- { "mt", "ISO-8859-3" },
|
||||
- { "is", "ISO-8859-1" },
|
||||
- { "it", "ISO-8859-1" },
|
||||
- { "iw", "ISO-8859-8" },
|
||||
- { "ja", "EUC-JP" },
|
||||
- { "ko", "EUC-KR" },
|
||||
- { "lt", "ISO-8859-13" },
|
||||
- { "lv", "ISO-8859-13" },
|
||||
- { "mk", "ISO-8859-5" },
|
||||
- { "mt", "ISO-8859-3" },
|
||||
- { "no", "ISO-8859-1" },
|
||||
- { "pl", "ISO-8859-2" },
|
||||
- { "pt_BR", "ISO-8859-1" },
|
||||
- { "ro", "ISO-8859-2" },
|
||||
- { "ru", "KOI8-R" },
|
||||
- { "sl", "ISO-8859-2" },
|
||||
- { "sr", "ISO-8859-2" }, /* Latin, not cyrillic */
|
||||
- { "sk", "ISO-8859-2" },
|
||||
- { "sv", "ISO-8859-1" },
|
||||
- { "tr", "ISO-8859-9" },
|
||||
- { "uk", "ISO-8859-5" },
|
||||
- { "zh_CN", "BIG5" },
|
||||
- { "zh_TW", "BIG5" },
|
||||
- { NULL, NULL },
|
||||
-};
|
||||
-
|
||||
static void yelp_man_document_finalize (GObject *object);
|
||||
|
||||
/* YelpDocument */
|
||||
@@ -385,7 +329,6 @@ man_document_process (YelpManDocument *man)
|
||||
gint params_i = 0;
|
||||
gchar **params = NULL;
|
||||
YelpManParser *parser;
|
||||
- const gchar *language, *encoding;
|
||||
|
||||
file = yelp_uri_get_file (yelp_document_get_uri ((YelpDocument *) man));
|
||||
if (file == NULL) {
|
||||
@@ -407,24 +350,6 @@ man_document_process (YelpManDocument *man)
|
||||
goto done;
|
||||
}
|
||||
|
||||
- /* FIXME: get the language */
|
||||
- language = "C";
|
||||
-
|
||||
- /* default encoding if the language doesn't match below */
|
||||
- encoding = g_getenv("MAN_ENCODING");
|
||||
- if (encoding == NULL)
|
||||
- encoding = "ISO-8859-1";
|
||||
-
|
||||
- if (language != NULL) {
|
||||
- gint i;
|
||||
- for (i = 0; langmap[i].language != NULL; i++) {
|
||||
- if (g_str_equal (language, langmap[i].language)) {
|
||||
- encoding = langmap[i].encoding;
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-
|
||||
parser = yelp_man_parser_new ();
|
||||
priv->xmldoc = yelp_man_parser_parse_file (parser, filepath, &error);
|
||||
yelp_man_parser_free (parser);
|
||||
--
|
||||
2.19.1
|
||||
|
@ -1,41 +1,20 @@
|
||||
%global _changelog_trimtime %(date +%s -d "1 year ago")
|
||||
%global tarball_version %%(echo %{version} | tr '~' '.')
|
||||
|
||||
Name: yelp
|
||||
Epoch: 2
|
||||
Version: 3.28.1
|
||||
Release: 3%{?dist}
|
||||
Version: 40.3
|
||||
Release: 2%{?dist}
|
||||
Summary: Help browser for the GNOME desktop
|
||||
|
||||
Group: Applications/System
|
||||
License: LGPLv2+ and ASL 2.0 and GPLv2+
|
||||
URL: https://wiki.gnome.org/Apps/Yelp
|
||||
#VCS: git:git://git.gnome.org/yelp
|
||||
Source: https://download.gnome.org/sources/%{name}/3.28/%{name}-%{version}.tar.xz
|
||||
Source: https://download.gnome.org/sources/%{name}/40/%{name}-%{tarball_version}.tar.xz
|
||||
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=687960
|
||||
Patch1: 0001-Center-new-windows.patch
|
||||
# https://gitlab.gnome.org/GNOME/yelp/commit/b8fdfcae060bdffb15d81e68cdff011105013eb0
|
||||
Patch2: 0001-Fix-build-with-GCC-8.patch
|
||||
Patch3: 0001-Add-gnu_printf-format-attribute-to-yelp_debug.patch
|
||||
Patch4: 0002-Check-whether-document-has-a-root-element-before-acc.patch
|
||||
Patch5: 0003-Check-whether-the-index-variable-is-valid-before-der.patch
|
||||
Patch6: 0004-Correctly-check-whether-virtual-method-is-implemente.patch
|
||||
Patch7: 0005-Check-whether-variable-node-is-set-before-dereferenc.patch
|
||||
Patch8: 0006-Fix-a-use-of-an-uninitialized-variable.patch
|
||||
Patch9: 0007-Check-whether-the-index-variable-is-valid-before-der.patch
|
||||
Patch10: 0008-Check-whether-parser-is-null-before-dereferencing-it.patch
|
||||
Patch11: 0009-Avoid-possible-overrun-while-comparing-to-MAN_FONTS.patch
|
||||
Patch12: 0010-Increase-the-size-of-string-variables-passed-to-ssca.patch
|
||||
Patch13: 0011-Initialize-ws_start-variable-before-returning-it.patch
|
||||
Patch14: 0012-Swap-the-if-checks-to-avoid-possible-null-pointer-de.patch
|
||||
Patch15: 0013-Check-the-strstr-return-value-before-using-it.patch
|
||||
Patch16: 0014-Check-variable-before-dereferencing-it.patch
|
||||
Patch17: 0015-Remove-unused-variable.patch
|
||||
Patch18: 0016-Fix-possible-double-free.patch
|
||||
Patch19: 0017-Remove-the-unused-encoding-and-language-code-from-Ye.patch
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1638876
|
||||
Patch20: yelp-quit.patch
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: make
|
||||
BuildRequires: pkgconfig(gtk+-3.0)
|
||||
BuildRequires: pkgconfig(liblzma)
|
||||
BuildRequires: pkgconfig(libxml-2.0)
|
||||
@ -47,13 +26,11 @@ BuildRequires: pkgconfig(yelp-xsl)
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: bzip2-devel
|
||||
BuildRequires: gettext-devel
|
||||
BuildRequires: git
|
||||
BuildRequires: intltool
|
||||
BuildRequires: itstool
|
||||
Requires: yelp-libs%{?_isa} = %{epoch}:%{version}-%{release}
|
||||
Requires: yelp-xsl
|
||||
|
||||
|
||||
%description
|
||||
Yelp is the help browser for the GNOME desktop. It is designed
|
||||
to help you browse all the documentation on your system in
|
||||
@ -62,32 +39,24 @@ documentation written in DocBook.
|
||||
|
||||
%package libs
|
||||
Summary: Libraries for yelp
|
||||
Group: Development/Libraries
|
||||
|
||||
%description libs
|
||||
This package contains libraries used by the yelp help browser.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for yelp-libs
|
||||
Group: Development/Libraries
|
||||
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
|
||||
|
||||
%description devel
|
||||
This package contains header files and documentation for
|
||||
the libraries in the yelp-libs package.
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
%autosetup -p1 -n %{name}-%{tarball_version}
|
||||
|
||||
%build
|
||||
%configure --disable-static
|
||||
|
||||
# drop unneeded direct library deps with --as-needed
|
||||
# libtool doesn't make this easy, so we do it the hard way
|
||||
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' -e 's/ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then/ func_append compile_command " -Wl,-O1,--as-needed"\n func_append finalize_command " -Wl,-O1,--as-needed"\n\0/' libtool
|
||||
|
||||
make %{?_smp_mflags} V=1
|
||||
%make_build
|
||||
|
||||
%install
|
||||
%make_install
|
||||
@ -99,20 +68,20 @@ find $RPM_BUILD_ROOT%{_libdir} -name '*.la' -delete
|
||||
%check
|
||||
desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/yelp.desktop
|
||||
|
||||
%ldconfig_scriptlets libs
|
||||
|
||||
%files -f %{name}.lang
|
||||
%doc AUTHORS NEWS README
|
||||
%license COPYING
|
||||
%{_bindir}/*
|
||||
%{_datadir}/applications/yelp.desktop
|
||||
%{_datadir}/glib-2.0/schemas/org.gnome.yelp.gschema.xml
|
||||
%{_datadir}/icons/hicolor/scalable/apps/org.gnome.Yelp.svg
|
||||
%{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Yelp-symbolic.svg
|
||||
%{_datadir}/metainfo/yelp.appdata.xml
|
||||
%{_datadir}/yelp/
|
||||
%{_datadir}/yelp-xsl/xslt/common/domains/yelp.xml
|
||||
|
||||
%files libs
|
||||
%{_libdir}/libyelp.so.*
|
||||
%{_libdir}/libyelp.so.0*
|
||||
%dir %{_libdir}/yelp
|
||||
%dir %{_libdir}/yelp/web-extensions
|
||||
%{_libdir}/yelp/web-extensions/libyelpwebextension.so
|
||||
@ -124,14 +93,83 @@ desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/yelp.desktop
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Oct 15 2018 Tomas Popela <tpopela@redhat.com> - 2:3.28.1-3
|
||||
- Add the Quit entry to the app menu
|
||||
- Handle Ctrl+Q shortcut for quitting the application
|
||||
- Resolves: rhbz#1638876
|
||||
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 2:40.3-2
|
||||
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||
Related: rhbz#1991688
|
||||
|
||||
* Fri Oct 12 2018 Tomas Popela <tpopela@redhat.com> - 2:3.28.1-2
|
||||
- Fix the coverity scan issues
|
||||
- Resolves: rhbz#1602739
|
||||
* Mon Aug 09 2021 David King <amigadave@amigadave.com> - 2:40.3-1
|
||||
- Update to 40.3 (#1991436)
|
||||
|
||||
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 2:40.0-2
|
||||
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
|
||||
|
||||
* Mon Mar 22 2021 Kalev Lember <klember@redhat.com> - 2:40.0-1
|
||||
- Update to 40.0
|
||||
|
||||
* Sun Feb 28 2021 Kalev Lember <klember@redhat.com> - 2:40~beta-2
|
||||
- Drop libtool as-needed hack as as-needed is in default LDFLAGS now
|
||||
- Remove unneeded ldconfig_scriptlets macro call
|
||||
- Tighten soname globs
|
||||
|
||||
* Thu Feb 18 2021 Kalev Lember <klember@redhat.com> - 2:40~beta-1
|
||||
- Update to 40.beta
|
||||
|
||||
* Thu Jan 28 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2:3.38.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Wed Nov 25 2020 Kalev Lember <klember@redhat.com> - 2:3.38.2-1
|
||||
- Update to 3.38.2
|
||||
|
||||
* Mon Oct 5 2020 Kalev Lember <klember@redhat.com> - 2:3.38.1-1
|
||||
- Update to 3.38.1
|
||||
|
||||
* Sat Sep 12 2020 Kalev Lember <klember@redhat.com> - 2:3.38.0-1
|
||||
- Update to 3.38.0
|
||||
|
||||
* Tue Aug 18 2020 David King <amigadave@amigadave.com> - 2:3.37.90-2
|
||||
- Use make_build macro
|
||||
|
||||
* Mon Aug 17 2020 Kalev Lember <klember@redhat.com> - 2:3.37.90-1
|
||||
- Update to 3.37.90
|
||||
|
||||
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2:3.36.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Sat Mar 07 2020 Kalev Lember <klember@redhat.com> - 2:3.36.0-1
|
||||
- Update to 3.36.0
|
||||
|
||||
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2:3.34.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Mon Sep 09 2019 Kalev Lember <klember@redhat.com> - 2:3.34.0-1
|
||||
- Update to 3.34.0
|
||||
|
||||
* Tue Sep 03 2019 Kalev Lember <klember@redhat.com> - 2:3.33.92-1
|
||||
- Update to 3.33.92
|
||||
|
||||
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2:3.32.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Tue May 07 2019 David King <amigadave@amigadave.com> - 2:3.32.2-1
|
||||
- Update to 3.32.2
|
||||
|
||||
* Mon Apr 08 2019 Kalev Lember <klember@redhat.com> - 2:3.32.1-1
|
||||
- Update to 3.32.1
|
||||
|
||||
* Mon Mar 11 2019 Kalev Lember <klember@redhat.com> - 2:3.32.0-1
|
||||
- Update to 3.32.0
|
||||
|
||||
* Mon Feb 04 2019 David King <amigadave@amigadave.com> - 2:3.31.90-1
|
||||
- Update to 3.31.90
|
||||
|
||||
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2:3.30.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Tue Sep 04 2018 David King <amigadave@amigadave.com> - 2:3.30.0-1
|
||||
- Update to 3.30.0
|
||||
|
||||
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2:3.28.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Mon Apr 09 2018 Kalev Lember <klember@redhat.com> - 2:3.28.1-1
|
||||
- Update to 3.28.1
|
@ -1,6 +0,0 @@
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-8
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: desktop-qe.desktop-ci.tier1-gating.functional}
|
1
sources
1
sources
@ -1 +0,0 @@
|
||||
SHA512 (yelp-3.28.1.tar.xz) = e37d4bc3b22b4f84654f25d68ba0a09016bec01d3b50e1158612dc8d3ae64b59f7882f25a3ed4dd1d9c9674b99e57d1ba207332ea088a2be8c082f329704c229
|
@ -1,83 +0,0 @@
|
||||
diff --git a/src/yelp-application.c b/src/yelp-application.c
|
||||
index 47a69991..28638ee7 100644
|
||||
--- a/src/yelp-application.c
|
||||
+++ b/src/yelp-application.c
|
||||
@@ -90,6 +90,9 @@ static void application_adjust_font (GAction *a
|
||||
GVariant *parameter,
|
||||
YelpApplication *app);
|
||||
static void application_set_font_sensitivity (YelpApplication *app);
|
||||
+static void application_quit (GAction *action,
|
||||
+ GVariant *parameter,
|
||||
+ YelpApplication *app);
|
||||
|
||||
static void bookmarks_changed (GSettings *settings,
|
||||
const gchar *key,
|
||||
@@ -110,6 +113,7 @@ struct _YelpApplicationPrivate {
|
||||
GPropertyAction *show_cursor_action;
|
||||
GSimpleAction *larger_text_action;
|
||||
GSimpleAction *smaller_text_action;
|
||||
+ GSimpleAction *quit_action;
|
||||
|
||||
GSettingsBackend *backend;
|
||||
GSettings *gsettings;
|
||||
@@ -200,6 +204,11 @@ yelp_application_dispose (GObject *object)
|
||||
priv->larger_text_action = NULL;
|
||||
}
|
||||
|
||||
+ if (priv->quit_action) {
|
||||
+ g_object_unref (priv->quit_action);
|
||||
+ priv->quit_action = NULL;
|
||||
+ }
|
||||
+
|
||||
if (priv->smaller_text_action) {
|
||||
g_object_unref (priv->smaller_text_action);
|
||||
priv->smaller_text_action = NULL;
|
||||
@@ -267,6 +276,7 @@ yelp_application_startup (GApplication *application)
|
||||
GMenu *menu, *section;
|
||||
gchar *keyfile;
|
||||
YelpSettings *settings;
|
||||
+ const gchar *quit_accels[2] = { "<Ctrl>Q", NULL };
|
||||
|
||||
g_set_application_name (N_("Help"));
|
||||
|
||||
@@ -316,6 +326,16 @@ yelp_application_startup (GApplication *application)
|
||||
|
||||
application_set_font_sensitivity (app);
|
||||
|
||||
+ priv->quit_action = g_simple_action_new ("yelp-application-quit", NULL);
|
||||
+ g_signal_connect (priv->quit_action,
|
||||
+ "activate",
|
||||
+ G_CALLBACK (application_quit),
|
||||
+ app);
|
||||
+ g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (priv->quit_action));
|
||||
+
|
||||
+ gtk_application_set_accels_for_action (
|
||||
+ GTK_APPLICATION (app), "app.yelp-application-quit", quit_accels);
|
||||
+
|
||||
menu = g_menu_new ();
|
||||
section = g_menu_new ();
|
||||
g_menu_append (section, _("New Window"), "win.yelp-window-new");
|
||||
@@ -326,11 +346,23 @@ yelp_application_startup (GApplication *application)
|
||||
g_menu_append (section, _("Smaller Text"), "app.yelp-application-smaller-text");
|
||||
g_menu_append_section (menu, NULL, G_MENU_MODEL (section));
|
||||
g_object_unref (section);
|
||||
+ section = g_menu_new ();
|
||||
+ g_menu_append (section, _("Quit"), "app.yelp-application-quit");
|
||||
+ g_menu_append_section (menu, NULL, G_MENU_MODEL (section));
|
||||
+ g_object_unref (section);
|
||||
gtk_application_set_app_menu (GTK_APPLICATION (application), G_MENU_MODEL (menu));
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
+static void
|
||||
+application_quit (GAction *action,
|
||||
+ GVariant *parameter,
|
||||
+ YelpApplication *app)
|
||||
+{
|
||||
+ g_application_quit (G_APPLICATION (app));
|
||||
+}
|
||||
+
|
||||
static void
|
||||
application_adjust_font (GAction *action,
|
||||
GVariant *parameter,
|
Loading…
Reference in New Issue
Block a user