diff --git a/0002-input-check-end-of-input-before-reading-a-byte.patch b/0002-input-check-end-of-input-before-reading-a-byte.patch deleted file mode 100644 index cf74b5aee31069c509175eb12ee68a5b92d641be..0000000000000000000000000000000000000000 --- a/0002-input-check-end-of-input-before-reading-a-byte.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 898e3a8c8c0314d2e6b106809a8e3e93cf9d4394 Mon Sep 17 00:00:00 2001 -From: Ignacio Casal Quinteiro -Date: Sun, 16 Apr 2017 13:13:43 +0200 -Subject: [PATCH 2/6] input: check end of input before reading a byte - -When reading bytes we weren't check that the index wasn't -out of bound and this could produce an invalid read which -could deal to a security bug. ---- - src/cr-input.c | 11 +++++++++-- - 1 file changed, 9 insertions(+), 2 deletions(-) - -diff --git a/src/cr-input.c b/src/cr-input.c -index 49000b1..3b63a88 100644 ---- a/src/cr-input.c -+++ b/src/cr-input.c -@@ -256,7 +256,7 @@ cr_input_new_from_uri (const gchar * a_file_uri, enum CREncoding a_enc) - *we should free buf here because it's own by CRInput. - *(see the last parameter of cr_input_new_from_buf(). - */ -- buf = NULL ; -+ buf = NULL; - } - - cleanup: -@@ -404,6 +404,8 @@ cr_input_get_nb_bytes_left (CRInput const * a_this) - enum CRStatus - cr_input_read_byte (CRInput * a_this, guchar * a_byte) - { -+ gulong nb_bytes_left = 0; -+ - g_return_val_if_fail (a_this && PRIVATE (a_this) - && a_byte, CR_BAD_PARAM_ERROR); - -@@ -413,6 +415,12 @@ cr_input_read_byte (CRInput * a_this, guchar * a_byte) - if (PRIVATE (a_this)->end_of_input == TRUE) - return CR_END_OF_INPUT_ERROR; - -+ nb_bytes_left = cr_input_get_nb_bytes_left (a_this); -+ -+ if (nb_bytes_left < 1) { -+ return CR_END_OF_INPUT_ERROR; -+ } -+ - *a_byte = PRIVATE (a_this)->in_buf[PRIVATE (a_this)->next_byte_index]; - - if (PRIVATE (a_this)->nb_bytes - -@@ -477,7 +485,6 @@ cr_input_read_char (CRInput * a_this, guint32 * a_char) - if (*a_char == '\n') { - PRIVATE (a_this)->end_of_line = TRUE; - } -- - } - - return status; --- -1.8.3.1 diff --git a/0004-tknzr-support-only-max-long-rgb-values.patch b/0004-tknzr-support-only-max-long-rgb-values.patch deleted file mode 100644 index 4c8582c8d765cf882638499184eb2cb14ce2b128..0000000000000000000000000000000000000000 --- a/0004-tknzr-support-only-max-long-rgb-values.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 9ad72875e9f08e4c519ef63d44cdbd94aa9504f7 Mon Sep 17 00:00:00 2001 -From: Ignacio Casal Quinteiro -Date: Sun, 16 Apr 2017 13:56:09 +0200 -Subject: [PATCH 4/6] tknzr: support only max long rgb values - -This fixes a possible out of bound when reading rgbs which -are longer than the support MAXLONG ---- - src/cr-tknzr.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/src/cr-tknzr.c b/src/cr-tknzr.c -index 1a7cfeb..1548c35 100644 ---- a/src/cr-tknzr.c -+++ b/src/cr-tknzr.c -@@ -1279,6 +1279,11 @@ cr_tknzr_parse_rgb (CRTknzr * a_this, CRRgb ** a_rgb) - status = cr_tknzr_parse_num (a_this, &num); - ENSURE_PARSING_COND ((status == CR_OK) && (num != NULL)); - -+ if (num->val > G_MAXLONG) { -+ status = CR_PARSING_ERROR; -+ goto error; -+ } -+ - red = num->val; - cr_num_destroy (num); - num = NULL; -@@ -1298,6 +1303,11 @@ cr_tknzr_parse_rgb (CRTknzr * a_this, CRRgb ** a_rgb) - status = cr_tknzr_parse_num (a_this, &num); - ENSURE_PARSING_COND ((status == CR_OK) && (num != NULL)); - -+ if (num->val > G_MAXLONG) { -+ status = CR_PARSING_ERROR; -+ goto error; -+ } -+ - PEEK_BYTE (a_this, 1, &next_bytes[0]); - if (next_bytes[0] == '%') { - SKIP_CHARS (a_this, 1); --- -1.8.3.1 diff --git a/libcroco-0.6.12.tar.gz b/libcroco-0.6.12.tar.gz deleted file mode 100644 index d53bc6956b981becab73af779b88845ccd19fa26..0000000000000000000000000000000000000000 Binary files a/libcroco-0.6.12.tar.gz and /dev/null differ diff --git a/libcroco-0.6.13.tar.gz b/libcroco-0.6.13.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..391e71323656203bebd7c2b38e9508e4af124988 Binary files /dev/null and b/libcroco-0.6.13.tar.gz differ diff --git a/libcroco.spec b/libcroco.spec index 1bf1d1ec580836f28400c0cb54dd53e2e72a9f85..4016bfffce340601d81d0939d2970b73f7f691c9 100644 --- a/libcroco.spec +++ b/libcroco.spec @@ -1,15 +1,13 @@ Name: libcroco -Version: 0.6.12 -Release: 14 +Version: 0.6.13 +Release: 1 Summary: A CSS parsing library License: LGPLv2 URL: https://github.com/GNOME/libcroco Source0: https://github.com/GNOME/libcroco/archive/%{name}-%{version}.tar.gz -Patch0000: 0002-input-check-end-of-input-before-reading-a-byte.patch -Patch0001: 0004-tknzr-support-only-max-long-rgb-values.patch -Patch0002: CVE-2017-8834_CVE-2017-8871.patch -Patch0003: fix-CVE-2020-12825.patch +Patch0: CVE-2017-8834_CVE-2017-8871.patch +Patch1: fix-CVE-2020-12825.patch BuildRequires: git gcc glib2-devel libxml2-devel pkgconfig gtk-doc libtool @@ -66,6 +64,12 @@ make test %changelog +* Sat Aug 1 2020 zhangguangzhi - 0.6.13-1 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:update to 0.6.13 + * Sun Jun 28 2020 wangchen - 0.6.12-14 - Type:cves - ID:CVE-2020-12825 diff --git a/libcroco.yaml b/libcroco.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7a9c853894d4262de79ef12b8fab6f6f3f21d50c --- /dev/null +++ b/libcroco.yaml @@ -0,0 +1,4 @@ +version_control: github +src_repo: GNOME/libcroco +tag_prefix: ^ +seperator: .