diff options
author | CoprDistGit <infra@openeuler.org> | 2024-08-05 01:53:44 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2024-08-05 01:53:44 +0000 |
commit | cf5a602a26d0f120e9834dc78a5f5c4d22c5ca61 (patch) | |
tree | 555a289dca2a7ac70166870123e7c300eb5698e7 /evince-40.1-covscan.patch | |
parent | 2529acea9cb6de0a15a243794a0c76382e813ae3 (diff) |
automatic import of evinceopeneuler24.03_LTS
Diffstat (limited to 'evince-40.1-covscan.patch')
-rw-r--r-- | evince-40.1-covscan.patch | 485 |
1 files changed, 485 insertions, 0 deletions
diff --git a/evince-40.1-covscan.patch b/evince-40.1-covscan.patch new file mode 100644 index 0000000..1373785 --- /dev/null +++ b/evince-40.1-covscan.patch @@ -0,0 +1,485 @@ +--- evince-40.1/backend/dvi/mdvi-lib/pagesel.c ++++ evince-40.1/backend/dvi/mdvi-lib/pagesel.c +@@ -209,6 +209,7 @@ DviPageSpec *mdvi_parse_page_spec(const + range = mdvi_parse_range(format, NULL, &count, &ptr); + if(ptr == format) { + if(range) mdvi_free(range); ++ mdvi_free(spec); + mdvi_error(_("invalid page specification `%s'\n"), format); + return NULL; + } +--- evince-40.1/backend/dvi/mdvi-lib/tfmfile.c ++++ evince-40.1/backend/dvi/mdvi-lib/tfmfile.c +@@ -393,6 +393,7 @@ static int ofm1_load_file(FILE *in, TFMI + /* read them in one sweep */ + if(fread(tfm, 4, size, in) != size) { + mdvi_free(tfm); ++ tfm = NULL; + goto bad_tfm; + } + +--- evince-40.1/backend/dvi/mdvi-lib/vf.c ++++ evince-40.1/backend/dvi/mdvi-lib/vf.c +@@ -129,6 +129,7 @@ static int vf_load_font(DviParams *param + if(ref == NULL) { + mdvi_error(_("(vf) %s: could not load font `%s'\n"), + font->fontname, name); ++ mdvi_free(name); + goto error; + } + mdvi_free(name); +--- evince-40.1/backend/comics/comics-document.c ++++ evince-40.1/backend/comics/comics-document.c +@@ -453,23 +453,27 @@ comics_document_render_pixbuf (EvDocumen + + name = ev_archive_get_entry_pathname (comics_document->archive); + if (g_strcmp0 (name, page_path) == 0) { +- size_t size = ev_archive_get_entry_size (comics_document->archive); ++ gint64 size = ev_archive_get_entry_size (comics_document->archive); + char *buf; + ssize_t read; + +- buf = g_malloc (size); +- read = ev_archive_read_data (comics_document->archive, buf, size, &error); +- if (read <= 0) { +- if (read < 0) { +- g_warning ("Fatal error reading '%s' in archive: %s", name, error->message); +- g_error_free (error); ++ if (size < 0) { ++ g_warning ("Wrong size of entry '%s'.", name); ++ } else { ++ buf = g_malloc (size); ++ read = ev_archive_read_data (comics_document->archive, buf, size, &error); ++ if (read <= 0) { ++ if (read < 0) { ++ g_warning ("Fatal error reading '%s' in archive: %s", name, error->message); ++ g_error_free (error); ++ } else { ++ g_warning ("Read an empty file from the archive"); ++ } + } else { +- g_warning ("Read an empty file from the archive"); ++ gdk_pixbuf_loader_write (loader, (guchar *) buf, size, NULL); + } +- } else { +- gdk_pixbuf_loader_write (loader, (guchar *) buf, size, NULL); ++ g_free (buf); + } +- g_free (buf); + gdk_pixbuf_loader_close (loader, NULL); + break; + } +--- evince-40.1/backend/pdf/ev-poppler.cc ++++ evince-40.1/backend/pdf/ev-poppler.cc +@@ -591,7 +591,7 @@ pdf_document_get_xmptag_from_path (xmlXP + const char* xpath) + { + xmlXPathObjectPtr xpathObj; +- char *xmpmetapath = g_strdup_printf ("%s%s", "/x:xmpmeta", xpath); ++ char *xmpmetapath; + xmlChar *result = NULL; + + /* add pdf/a and pdf/x namespaces */ +@@ -620,13 +620,17 @@ pdf_document_get_xmptag_from_path (xmlXP + if (result != NULL) + return result; + ++ xmpmetapath = g_strdup_printf ("%s%s", "/x:xmpmeta", xpath); ++ + /* + Try in /x:xmpmeta/ (xmpmeta is optional) + https://wwwimages2.adobe.com/content/dam/acom/en/devnet/xmp/pdfs/XMP SDK Release cc-2016-08/XMPSpecificationPart1.pdf (Section 7.3.3) + */ + xpathObj = xmlXPathEvalExpression (BAD_CAST xmpmetapath, xpathCtx); +- if (xpathObj == NULL) ++ if (xpathObj == NULL) { ++ g_free (xmpmetapath); + return NULL; ++ } + + if (xpathObj->nodesetval != NULL && xpathObj->nodesetval->nodeNr != 0) + result = xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]); +@@ -743,12 +747,14 @@ static char * + pdf_document_get_author_from_metadata (xmlXPathContextPtr xpathCtx) + { + char* result = NULL; +- char* xmpmetapath = g_strdup_printf ("%s%s", "/x:xmpmeta", AUTHORS); ++ char* xmpmetapath; + /* Try in /rdf:RDF/ */ + result = pdf_document_get_lists_from_dc_tags (xpathCtx, AUTHORS); + if (result != NULL) + return result; + ++ xmpmetapath = g_strdup_printf ("%s%s", "/x:xmpmeta", AUTHORS); ++ + /* Try in /x:xmpmeta/ */ + result = pdf_document_get_lists_from_dc_tags (xpathCtx, xmpmetapath); + g_free (xmpmetapath); +@@ -760,12 +766,14 @@ static char * + pdf_document_get_keywords_from_metadata (xmlXPathContextPtr xpathCtx) + { + char* result = NULL; +- char* xmpmetapath = g_strdup_printf ("%s%s", "/x:xmpmeta", KEYWORDS); ++ char* xmpmetapath; + /* Try in /rdf:RDF/ */ + result = pdf_document_get_lists_from_dc_tags (xpathCtx, KEYWORDS); + if (result != NULL) + return result; + ++ xmpmetapath = g_strdup_printf ("%s%s", "/x:xmpmeta", KEYWORDS); ++ + /* Try in /x:xmpmeta/ */ + result = pdf_document_get_lists_from_dc_tags (xpathCtx, xmpmetapath); + g_free (xmpmetapath); +@@ -859,6 +859,7 @@ pdf_document_get_info (EvDocument *docum + break; + case POPPLER_PAGE_LAYOUT_TWO_COLUMN_RIGHT: + info->layout = EV_DOCUMENT_LAYOUT_TWO_COLUMN_RIGHT; ++ break; + case POPPLER_PAGE_LAYOUT_TWO_PAGE_LEFT: + info->layout = EV_DOCUMENT_LAYOUT_TWO_PAGE_LEFT; + break; +--- evince-40.1/properties/ev-properties-view.c ++++ evince-40.1/properties/ev-properties-view.c +@@ -339,6 +339,7 @@ ev_regular_paper_size (const EvDocumentI + ABS (info->paper_width - paper_width) <= width_tolerance) { + /* Note to translators: first placeholder is the paper name (eg. + * A4), second placeholder is the paper size (eg. 297x210 mm) */ ++ g_free (str); + str = g_strdup_printf (_("%s, Portrait (%s)"), + gtk_paper_size_get_display_name (size), + exact_size); +@@ -346,6 +347,7 @@ ev_regular_paper_size (const EvDocumentI + ABS (info->paper_height - paper_width) <= width_tolerance) { + /* Note to translators: first placeholder is the paper name (eg. + * A4), second placeholder is the paper size (eg. 297x210 mm) */ ++ g_free (str); + str = g_strdup_printf ( _("%s, Landscape (%s)"), + gtk_paper_size_get_display_name (size), + exact_size); +--- evince-40.1/cut-n-paste/libgd/gd-two-lines-renderer.c ++++ evince-40.1/cut-n-paste/libgd/gd-two-lines-renderer.c +@@ -281,7 +281,7 @@ gd_two_lines_renderer_render (GtkCellRen + GtkStyleContext *context; + gint line_one_height; + GtkStateFlags state; +- GdkRectangle area, render_area = *cell_area; ++ GdkRectangle area, render_area; + gint xpad, ypad, x_offset_1, x_offset_2, y_offset; + PangoLayout *layout_one, *layout_two; + PangoRectangle layout_rect; +--- evince-40.1/cut-n-paste/unarr/rar/filter-rar.c ++++ evince-40.1/cut-n-paste/unarr/rar/filter-rar.c +@@ -273,8 +273,10 @@ static struct RARFilter *rar_create_filt + filter->prog = prog; + filter->globaldatalen = globaldatalen > RARProgramSystemGlobalSize ? globaldatalen : RARProgramSystemGlobalSize; + filter->globaldata = calloc(1, filter->globaldatalen); +- if (!filter->globaldata) ++ if (!filter->globaldata) { ++ free (filter); + return NULL; ++ } + if (globaldata) + memcpy(filter->globaldata, globaldata, globaldatalen); + if (registers) +--- evince-40.1/libdocument/ev-document.c ++++ evince-40.1/libdocument/ev-document.c +@@ -496,6 +496,9 @@ ev_document_load_stream (EvDocument + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + klass = EV_DOCUMENT_GET_CLASS (document); ++ ++ g_return_val_if_fail (klass != NULL, FALSE); ++ + if (!klass->load_stream) { + g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED, + "Backend does not support loading from stream"); +@@ -544,6 +547,9 @@ ev_document_load_gfile (EvDocument + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + klass = EV_DOCUMENT_GET_CLASS (document); ++ ++ g_return_val_if_fail (klass != NULL, FALSE); ++ + if (!klass->load_gfile) { + g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED, + "Backend does not support loading from GFile"); +@@ -867,6 +873,9 @@ ev_document_get_backend_info (EvDocument + g_return_val_if_fail (EV_IS_DOCUMENT (document), FALSE); + + klass = EV_DOCUMENT_GET_CLASS (document); ++ ++ g_return_val_if_fail (klass != NULL, FALSE); ++ + if (klass->get_backend_info == NULL) + return FALSE; + +--- evince-40.1/libview/ev-pixbuf-cache.c ++++ evince-40.1/libview/ev-pixbuf-cache.c +@@ -337,6 +337,11 @@ job_finished_cb (EvJob *job, + + job_info = find_job_cache (pixbuf_cache, job_render->page); + ++ if (job_info == NULL) { ++ g_warning ("Job info not found."); ++ return; ++ } ++ + if (ev_job_is_failed (job)) { + job_info->job = NULL; + g_object_unref (job); +@@ -721,6 +726,11 @@ add_job_if_needed (EvPixbufCache *pixbuf + gint device_scale = get_device_scale (pixbuf_cache); + gint width, height; + ++ if (job_info == NULL) { ++ g_warning ("Adding job with NULL info."); ++ return; ++ } ++ + if (job_info->job) + return; + +--- evince-40.1/libview/ev-print-operation.c ++++ evince-40.1/libview/ev-print-operation.c +@@ -181,6 +181,7 @@ ev_print_operation_set_current_page (EvP + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_if_fail (EV_IS_PRINT_OPERATION (op)); ++ g_return_if_fail (class != NULL); + g_return_if_fail (current_page >= 0); + + class->set_current_page (op, current_page); +@@ -193,6 +194,7 @@ ev_print_operation_set_print_settings (E + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_if_fail (EV_IS_PRINT_OPERATION (op)); ++ g_return_if_fail (class != NULL); + g_return_if_fail (GTK_IS_PRINT_SETTINGS (print_settings)); + + class->set_print_settings (op, print_settings); +@@ -210,6 +212,7 @@ ev_print_operation_get_print_settings (E + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_val_if_fail (EV_IS_PRINT_OPERATION (op), NULL); ++ g_return_val_if_fail (class != NULL, NULL); + + return class->get_print_settings (op); + } +@@ -221,6 +224,7 @@ ev_print_operation_set_default_page_setu + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_if_fail (EV_IS_PRINT_OPERATION (op)); ++ g_return_if_fail (class != NULL); + g_return_if_fail (GTK_IS_PAGE_SETUP (page_setup)); + + class->set_default_page_setup (op, page_setup); +@@ -238,6 +242,7 @@ ev_print_operation_get_default_page_setu + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_val_if_fail (EV_IS_PRINT_OPERATION (op), NULL); ++ g_return_val_if_fail (class != NULL, NULL); + + return class->get_default_page_setup (op); + } +@@ -249,6 +254,7 @@ ev_print_operation_set_job_name (EvPrint + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_if_fail (EV_IS_PRINT_OPERATION (op)); ++ g_return_if_fail (class != NULL); + g_return_if_fail (job_name != NULL); + + class->set_job_name (op, job_name); +@@ -260,6 +266,7 @@ ev_print_operation_get_job_name (EvPrint + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_val_if_fail (EV_IS_PRINT_OPERATION (op), NULL); ++ g_return_val_if_fail (class != NULL, NULL); + + return class->get_job_name (op); + } +@@ -271,6 +278,7 @@ ev_print_operation_run (EvPrintOperation + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_if_fail (EV_IS_PRINT_OPERATION (op)); ++ g_return_if_fail (class != NULL); + + class->run (op, parent); + } +@@ -281,6 +289,7 @@ ev_print_operation_cancel (EvPrintOperat + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_if_fail (EV_IS_PRINT_OPERATION (op)); ++ g_return_if_fail (class != NULL); + + class->cancel (op); + } +@@ -292,6 +301,7 @@ ev_print_operation_get_error (EvPrintOpe + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_if_fail (EV_IS_PRINT_OPERATION (op)); ++ g_return_if_fail (class != NULL); + + class->get_error (op, error); + } +@@ -303,6 +313,7 @@ ev_print_operation_set_embed_page_setup + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_if_fail (EV_IS_PRINT_OPERATION (op)); ++ g_return_if_fail (class != NULL); + + class->set_embed_page_setup (op, embed); + } +@@ -313,6 +324,7 @@ ev_print_operation_get_embed_page_setup + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_val_if_fail (EV_IS_PRINT_OPERATION (op), FALSE); ++ g_return_val_if_fail (class != NULL, FALSE); + + return class->get_embed_page_setup (op); + } +--- evince-40.1/libview/ev-timeline.c ++++ evince-40.1/libview/ev-timeline.c +@@ -289,9 +289,15 @@ ev_timeline_new (guint duration) + void + ev_timeline_start (EvTimeline *timeline) + { ++ EvTimelineClass *klass; ++ + g_return_if_fail (EV_IS_TIMELINE (timeline)); + +- EV_TIMELINE_GET_CLASS (timeline)->start (timeline); ++ klass = EV_TIMELINE_GET_CLASS (timeline); ++ ++ g_return_if_fail (klass != NULL); ++ ++ klass->start (timeline); + } + + void +--- evince-40.1/libview/ev-view.c ++++ evince-40.1/libview/ev-view.c +@@ -1147,7 +1147,7 @@ ensure_rectangle_is_visible (EvView *vie + if (rect->x < adj_value) { + value = MAX (gtk_adjustment_get_lower (adjustment), rect->x - MARGIN); + gtk_adjustment_set_value (view->hadjustment, value); +- } else if (rect->x + rect->height > adj_value + allocation.width) { ++ } else if (rect->x + rect->width > adj_value + allocation.width) { + value = MIN (gtk_adjustment_get_upper (adjustment), rect->x + rect->width - + allocation.width + MARGIN); + gtk_adjustment_set_value (view->hadjustment, value); +@@ -1777,6 +1777,11 @@ goto_fitv_dest (EvView *view, EvLinkDest + + page = ev_link_dest_get_page (dest); + ++ if (page < 0) { ++ g_warning ("Link does not contain a page."); ++ return; ++ } ++ + left = ev_link_dest_get_left (dest, &change_left); + doc_point.x = change_left ? left : 0; + doc_point.y = 0; +@@ -1813,6 +1818,11 @@ goto_fith_dest (EvView *view, EvLinkDest + + page = ev_link_dest_get_page (dest); + ++ if (page < 0) { ++ g_warning ("Link does not contain a page."); ++ return; ++ } ++ + top = ev_link_dest_get_top (dest, &change_top); + doc_point.x = 0; + doc_point.y = change_top ? top : 0; +@@ -1846,6 +1856,11 @@ goto_fit_dest (EvView *view, EvLinkDest + + page = ev_link_dest_get_page (dest); + ++ if (page < 0) { ++ g_warning ("Link does not contain a page."); ++ return; ++ } ++ + if (view->allow_links_change_zoom) { + double zoom; + gdouble doc_width, doc_height; +--- evince-40.1/libview/ev-view-presentation.c ++++ evince-40.1/libview/ev-view-presentation.c +@@ -448,7 +448,7 @@ ev_view_presentation_update_current_page + { + gint jump; + +- if (page < 0 || page >= ev_document_get_n_pages (pview->document)) ++ if (page >= ev_document_get_n_pages (pview->document)) + return; + + ev_view_presentation_animation_cancel (pview); +--- evince-40.1/shell/ev-find-sidebar.c ++++ evince-40.1/shell/ev-find-sidebar.c +@@ -476,8 +476,10 @@ process_matches_idle (EvFindSidebar *sid + page_label = ev_document_get_page_label (document, current_page); + page_text = get_page_text (document, page, &areas, &n_areas); + g_object_unref (page); +- if (!page_text) ++ if (!page_text) { ++ g_free (page_label); + continue; ++ } + + text_log_attrs_length = g_utf8_strlen (page_text, -1); + text_log_attrs = g_new0 (PangoLogAttr, text_log_attrs_length + 1); +--- evince-40.1/shell/ev-sidebar-thumbnails.c ++++ evince-40.1/shell/ev-sidebar-thumbnails.c +@@ -658,11 +658,11 @@ ev_sidebar_thumbnails_fill_model (EvSide + int i; + gint prev_width = -1; + gint prev_height = -1; ++ cairo_surface_t *loading_icon = NULL; + + for (i = 0; i < sidebar_thumbnails->priv->n_pages; i++) { + gchar *page_label; + gchar *page_string; +- cairo_surface_t *loading_icon = NULL; + gint width, height; + + page_label = ev_document_get_page_label (priv->document, i); +--- evince-40.1/shell/ev-window.c ++++ evince-40.1/shell/ev-window.c +@@ -3121,10 +3121,10 @@ ev_window_load_print_settings_from_metad + for (i = 0; i < G_N_ELEMENTS (document_print_settings); i++) { + gchar *value = NULL; + +- ev_metadata_get_string (priv->metadata, +- document_print_settings[i], &value); +- gtk_print_settings_set (print_settings, +- document_print_settings[i], value); ++ if (ev_metadata_get_string (priv->metadata, ++ document_print_settings[i], &value)) ++ gtk_print_settings_set (print_settings, ++ document_print_settings[i], value); + } + } + +@@ -4705,12 +4705,16 @@ ev_window_cmd_bookmarks_add (GSimpleActi + gchar *page_label; + + bm.page = ev_document_model_get_page (priv->model); +- page_label = ev_document_get_page_label (priv->document, bm.page); +- bm.title = g_strdup_printf (_("Page %s"), page_label); +- g_free (page_label); ++ if (bm.page >= 0) { ++ page_label = ev_document_get_page_label (priv->document, bm.page); ++ bm.title = g_strdup_printf (_("Page %s"), page_label); ++ g_free (page_label); + +- /* EvBookmarks takes ownership of bookmark */ +- ev_bookmarks_add (priv->bookmarks, &bm); ++ /* EvBookmarks takes ownership of bookmark */ ++ ev_bookmarks_add (priv->bookmarks, &bm); ++ } else { ++ g_warning ("Bookmarking of a page failed."); ++ } + } + + static void |