]> git.pld-linux.org Git - packages/exim.git/commitdiff
- rel 4; update branch fixes auto/th/exim-4.86-4
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Sat, 7 Nov 2015 21:27:53 +0000 (22:27 +0100)
committerArkadiusz Miśkiewicz <arekm@maven.pl>
Sat, 7 Nov 2015 21:27:53 +0000 (22:27 +0100)
exim-git.patch
exim.spec

index 327fff54b16a598030fab282d05c4b48ccf20842..ca84f1adcd882746a4963695bc07b436a8cf64ca 100644 (file)
@@ -1149,3 +1149,87 @@ index d392fda..6411c7e 100644
              US"callout")
         || !smtp_get_port(tf->port, addr, &port, US"callout")
         )
+
+commit 1bd52978055bc07dfa150d296ffb344f10fff7fe
+Author: Jeremy Harris <jgh146exb@wizmail.org>
+Date:   Mon Nov 2 19:03:26 2015 +0000
+
+    Avoid misaligned access in cached lookup.  Bug 1708
+    
+    (cherry picked from commit 98b98887f926be87eabccc7919e57ce625c63c03)
+
+diff --git a/src/src/search.c b/src/src/search.c
+index cd522da..ccad250 100644
+--- a/src/src/search.c
++++ b/src/src/search.c
+@@ -540,10 +540,10 @@ else
+       }
+     else
+       {
+-      t = store_get(sizeof(tree_node) + len + sizeof(expiring_data));
+-      e = (expiring_data *)((char *)t + sizeof(tree_node) + len);
++      e = store_get(sizeof(expiring_data) + sizeof(tree_node) + len);
+       e->expiry = do_cache == UINT_MAX ? 0 : time(NULL)+do_cache;
+       e->ptr = data;
++      t = (tree_node *)(e+1);
+       memcpy(t->name, keystring, len);
+       t->data.ptr = e;
+       tree_insertnode(&c->item_cache, t);
+
+commit e7c3de301824738c6f302e02e566f9da75d3130c
+Author: Jeremy Harris <jgh146exb@wizmail.org>
+Date:   Thu Oct 15 21:40:17 2015 +0100
+
+    DKIM: ignore space & tab embedded in base64 during decode.  Bug 1700
+    
+    (cherry picked from commit 0f557e9065b0bcfce38ee1fea5fc947bf0c5431c)
+
+diff --git a/src/src/pdkim/base64.c b/src/src/pdkim/base64.c
+index a82fc2d..1395be4 100644
+--- a/src/src/pdkim/base64.c
++++ b/src/src/pdkim/base64.c
+@@ -128,20 +128,22 @@ int base64_decode( unsigned char *dst, int *dlen,
+     for( i = j = n = 0; i < slen; i++ )
+     {
++      unsigned char c = src[i];
++
+         if( ( slen - i ) >= 2 &&
+-            src[i] == '\r' && src[i + 1] == '\n' )
++            c == '\r' && src[i + 1] == '\n' )
+             continue;
+-        if( src[i] == '\n' )
++        if( c == '\n' || c == ' ' || c == '\t' )
+             continue;
+-        if( src[i] == '=' && ++j > 2 )
++        if( c == '=' && ++j > 2 )
+             return( POLARSSL_ERR_BASE64_INVALID_CHARACTER );
+-        if( src[i] > 127 || base64_dec_map[src[i]] == 127 )
++        if( c > 127 || base64_dec_map[src[i]] == 127 )
+             return( POLARSSL_ERR_BASE64_INVALID_CHARACTER );
+-        if( base64_dec_map[src[i]] < 64 && j != 0 )
++        if( base64_dec_map[c] < 64 && j != 0 )
+             return( POLARSSL_ERR_BASE64_INVALID_CHARACTER );
+         n++;
+@@ -160,11 +162,13 @@ int base64_decode( unsigned char *dst, int *dlen,
+    for( j = 3, n = x = 0, p = dst; i > 0; i--, src++ )
+    {
+-        if( *src == '\r' || *src == '\n' )
++      unsigned char c = *src;
++
++        if( c == '\r' || c == '\n' || c == ' ' || c == '\t' )
+             continue;
+-        j -= ( base64_dec_map[*src] == 64 );
+-        x  = (x << 6) | ( base64_dec_map[*src] & 0x3F );
++        j -= ( base64_dec_map[c] == 64 );
++        x  = (x << 6) | ( base64_dec_map[c] & 0x3F );
+         if( ++n == 4 )
+         {
index ffaa40ea0043676f38b3c0de649c6e2c94ed268f..835034b54f8f471fc9263e6f1c5aaece9c3b0afa 100644 (file)
--- a/exim.spec
+++ b/exim.spec
@@ -21,7 +21,7 @@ Summary(pl.UTF-8):    Agent Transferu Poczty Uniwersytetu w Cambridge
 Summary(pt_BR.UTF-8):  Servidor de correio eletrônico exim
 Name:          exim
 Version:       4.86
-Release:       3
+Release:       4
 Epoch:         2
 License:       GPL
 Group:         Networking/Daemons/SMTP
This page took 0.040643 seconds and 4 git commands to generate.