Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package evolution-data-server for 
openSUSE:Factory checked in at 2021-03-24 16:09:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/evolution-data-server (Old)
 and      /work/SRC/openSUSE:Factory/.evolution-data-server.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "evolution-data-server"

Wed Mar 24 16:09:36 2021 rev:220 rq:879956 version:3.38.4

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/evolution-data-server/evolution-data-server.changes  
    2021-02-18 20:49:15.139258954 +0100
+++ 
/work/SRC/openSUSE:Factory/.evolution-data-server.new.2401/evolution-data-server.changes
    2021-03-24 16:09:41.211733400 +0100
@@ -1,0 +2,6 @@
+Wed Mar  3 21:08:31 UTC 2021 - Michael Gorse <mgo...@suse.com>
+
+- Add evolution-data-server-boo1182882.patch: fix buffer overrun
+  when parsing base64 data (boo#1182882).
+
+-------------------------------------------------------------------

New:
----
  evolution-data-server-boo1182882.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ evolution-data-server.spec ++++++
--- /var/tmp/diff_new_pack.iNwGHo/_old  2021-03-24 16:09:41.851734072 +0100
+++ /var/tmp/diff_new_pack.iNwGHo/_new  2021-03-24 16:09:41.855734076 +0100
@@ -40,6 +40,8 @@
 URL:            https://wiki.gnome.org/Apps/Evolution
 Source0:        
https://download.gnome.org/sources/evolution-data-server/3.38/%{name}-%{version}.tar.xz
 Source99:       baselibs.conf
+# PATCH-FIX-UPSTREAM evolution-data-server-boo1182882.patch boo#1182882 
mgo...@suse.com -- fix buffer overrun when decoding base64 data.
+Patch0:         evolution-data-server-boo1182882.patch
 
 BuildRequires:  cmake
 BuildRequires:  db-devel

++++++ evolution-data-server-boo1182882.patch ++++++
>From b0731961dca6ca2ee4a11b708545d58ff4948093 Mon Sep 17 00:00:00 2001
From: Milan Crha <mc...@redhat.com>
Date: Tue, 2 Mar 2021 12:26:09 +0100
Subject: [PATCH] Allocate large-enough buffer for g_base64_decode_step()

---
 src/camel/camel-mime-filter-basic.c | 8 ++------
 src/camel/camel-mime-utils.c        | 2 +-
 2 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/src/camel/camel-mime-filter-basic.c 
b/src/camel/camel-mime-filter-basic.c
index b13276264..8187fabd4 100644
--- a/src/camel/camel-mime-filter-basic.c
+++ b/src/camel/camel-mime-filter-basic.c
@@ -83,8 +83,7 @@ mime_filter_basic_filter (CamelMimeFilter *mime_filter,
                g_return_if_fail (newlen <= (len + 2) * 2 + 62);
                break;
        case CAMEL_MIME_FILTER_BASIC_BASE64_DEC:
-               /* output can't possibly exceed the input size */
-               camel_mime_filter_set_size (mime_filter, len + 3, FALSE);
+               camel_mime_filter_set_size (mime_filter, (len * 3 / 4) + 3, 
FALSE);
                newlen = g_base64_decode_step (
                        in, len,
                        (guchar *) mime_filter->outbuf,
@@ -225,10 +224,7 @@ mime_filter_basic_complete (CamelMimeFilter *mime_filter,
                g_return_if_fail (newlen <= (len + 2) * 2 + 62);
                break;
        case CAMEL_MIME_FILTER_BASIC_BASE64_DEC:
-               /* Output can't possibly exceed the input size, but add 1,
-                  to make sure the mime_filter->outbuf will not be NULL,
-                  in case the input stream is empty. */
-               camel_mime_filter_set_size (mime_filter, len + 1, FALSE);
+               camel_mime_filter_set_size (mime_filter, (len * 3 / 4) + 3, 
FALSE);
                newlen = g_base64_decode_step (
                        in, len,
                        (guchar *) mime_filter->outbuf,
diff --git a/src/camel/camel-mime-utils.c b/src/camel/camel-mime-utils.c
index 3394707e2..31024f5d4 100644
--- a/src/camel/camel-mime-utils.c
+++ b/src/camel/camel-mime-utils.c
@@ -1186,7 +1186,7 @@ rfc2047_decode_word (const gchar *in,
        case 'B':
        case 'b':
                inptr += 2;
-               decoded = g_alloca (inend - inptr);
+               decoded = g_alloca (((inend - inptr) * 3 / 4) + 3);
                declen = g_base64_decode_step ((gchar *) inptr, inend - inptr, 
decoded, &state, &save);
                break;
        case 'Q':
-- 
2.30.1

Reply via email to