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 | 
