exim.git
8 years agoFix build on systems where size_t is (non-long) uint exim-4_87
Jeremy Harris [Sat, 2 Apr 2016 19:22:00 +0000 (20:22 +0100)]
Fix build on systems where size_t is (non-long) uint

The exemplar was Ubuntu 14.04 LTS 32-bit - but probably many
32-bit systems would be affected

8 years agocontstification
Jeremy Harris [Sat, 2 Apr 2016 17:02:54 +0000 (18:02 +0100)]
contstification

8 years ago Copyright year updates (things touched in 2016)
Jeremy Harris [Sat, 2 Apr 2016 14:53:53 +0000 (15:53 +0100)]
Copyright year updates (things touched in 2016)

    Update current year in docs and banner copyright in src/src/globals.c

    Rest of changes from:

        vi $(git whatchanged --since=2016-01-01 | grep '^:100' | sed -n 's/^[^M]*M//p' | sort -u | fgrep -v test/)

8 years agoConstify use of string_nextinlist()
Heiko Schlittermann (HS12-RIPE) [Fri, 1 Apr 2016 17:00:55 +0000 (19:00 +0200)]
Constify use of string_nextinlist()

8 years agoTestsuite: move perl-dependent testcases exim-4_87_RC7
Jeremy Harris [Thu, 31 Mar 2016 20:33:28 +0000 (21:33 +0100)]
Testsuite: move perl-dependent testcases

8 years agoSupress TLS/Env warnings in checking and listing mode
Heiko Schlittermann (HS12-RIPE) [Sat, 26 Mar 2016 00:13:29 +0000 (01:13 +0100)]
Supress TLS/Env warnings in checking and listing mode

8 years agoTypo fix.
Andreas Metzler [Tue, 29 Mar 2016 16:57:55 +0000 (18:57 +0200)]
Typo fix.

messsage -> message
receved -> received

Found/reported by Vincent Lefevre in <https://bugs.debian.org/819482>.

8 years agoProvide getcwd(NULL, 0) for Solaris (SunOS5)
Heiko Schlittermann (HS12-RIPE) [Wed, 23 Mar 2016 21:53:27 +0000 (22:53 +0100)]
Provide getcwd(NULL, 0) for Solaris (SunOS5)

8 years agoDoc: Improve clarity on -be
Heiko Schlittermann (HS12-RIPE) [Thu, 24 Mar 2016 09:28:46 +0000 (10:28 +0100)]
Doc: Improve clarity on -be

8 years agoAdd os_unsetenv()
Heiko Schlittermann (HS12-RIPE) [Wed, 23 Mar 2016 20:19:56 +0000 (21:19 +0100)]
Add os_unsetenv()

BSDI: void unsetenv(const char*)
Other: int unsetenv(const char*)

8 years agoConstify spf
Heiko Schlittermann (HS12-RIPE) [Thu, 17 Mar 2016 10:06:38 +0000 (11:06 +0100)]
Constify spf

8 years agotidying: coverity issues
Jeremy Harris [Wed, 16 Mar 2016 15:30:57 +0000 (15:30 +0000)]
tidying: coverity issues

8 years agotidying: coverity issues
Jeremy Harris [Tue, 15 Mar 2016 19:39:07 +0000 (19:39 +0000)]
tidying: coverity issues

8 years agoUtilites: fix exim_lock
Jeremy Harris [Tue, 15 Mar 2016 19:16:14 +0000 (19:16 +0000)]
Utilites: fix exim_lock

Unaccountable fails to lock, seen in testsuite
Fix appeared when tidying a Coverity "unchecked returncode" fault

8 years agoFix build for Solaris: "all" must be the first make target.
Jeremy Harris [Mon, 14 Mar 2016 12:13:43 +0000 (12:13 +0000)]
Fix build for Solaris: "all" must be the first make target.
Broken-by: dfe7d917154a Bug 1578
8 years agoDocs: cuttthrough logging
Jeremy Harris [Mon, 14 Mar 2016 12:13:33 +0000 (12:13 +0000)]
Docs: cuttthrough logging

8 years agoDoc: Minor clarifications about the environment
Heiko Schlittermann (HS12-RIPE) [Sat, 12 Mar 2016 21:41:19 +0000 (22:41 +0100)]
Doc: Minor clarifications about the environment

8 years agotidying: coverity issues
Jeremy Harris [Sat, 12 Mar 2016 21:01:26 +0000 (21:01 +0000)]
tidying: coverity issues

8 years agoTestsuite: fix output for 615, missing spool dir
Heiko Schlittermann (HS12-RIPE) [Fri, 11 Mar 2016 23:44:41 +0000 (00:44 +0100)]
Testsuite: fix output for 615, missing spool dir

8 years agoDon't issue env warning if env is empty
Heiko Schlittermann (HS12-RIPE) [Fri, 11 Mar 2016 22:44:53 +0000 (23:44 +0100)]
Don't issue env warning if env is empty

keep_environment needs to be mentioned in the runtime config.
Setting add_environment isn't enough to suppress the warning.

8 years agoHonour the -n for -bP config
Heiko Schlittermann (HS12-RIPE) [Thu, 10 Mar 2016 22:48:48 +0000 (23:48 +0100)]
Honour the -n for -bP config

8 years agoFix typos.
Heiko Schlittermann (HS12-RIPE) [Thu, 10 Mar 2016 15:49:43 +0000 (16:49 +0100)]
Fix typos.

Thanks to Sander Bos for pointing out.

8 years agoDoc: clarify -n
Heiko Schlittermann (HS12-RIPE) [Thu, 10 Mar 2016 15:48:01 +0000 (16:48 +0100)]
Doc: clarify -n

8 years agoExtend configure.sample and the relevant spec part
Heiko Schlittermann (HS12-RIPE) [Wed, 9 Mar 2016 20:41:34 +0000 (21:41 +0100)]
Extend configure.sample and the relevant spec part

8 years agoString expansions: fix ${extract }, for the numeric/3-string case. Bug 1807
Jeremy Harris [Wed, 9 Mar 2016 17:40:48 +0000 (17:40 +0000)]
String expansions: fix ${extract }, for the numeric/3-string case.  Bug 1807

Broken-by: 82dbd37
In "skipping" mode when parsing an expansion we want to avoid expanding
the arguments, as the data for expansion is not necessarily valid.  This
bit us previously for an extract within an "if inlist". But the number of
args for ${extract } depends on the expanded value of the first arg.

Retreat from strict parsing and just line up the outer braces,
accepting any number of args while skipping.  The separate
non-skipping execution will do the proper checking.

8 years agoTest the return of getcwd()
Heiko Schlittermann (HS12-RIPE) [Wed, 9 Mar 2016 10:51:31 +0000 (11:51 +0100)]
Test the return of getcwd()

8 years agoStore the initial working directory, expand $initial_cwd. Bug 1805
Heiko Schlittermann (HS12-RIPE) [Wed, 9 Mar 2016 10:13:42 +0000 (11:13 +0100)]
Store the initial working directory, expand $initial_cwd. Bug 1805

8 years agoRemove trailing \n from {keep,add}_environment config warning
Heiko Schlittermann (HS12-RIPE) [Mon, 7 Mar 2016 08:44:15 +0000 (09:44 +0100)]
Remove trailing \n from {keep,add}_environment config warning

8 years agoFix build for HP-UX and older Solaris: (un)setenv. Bug 1578
Jeremy Harris [Tue, 8 Mar 2016 23:57:37 +0000 (23:57 +0000)]
Fix build for HP-UX and older Solaris: (un)setenv.  Bug 1578

Broken-by: bc3c7bb7d4ab
8 years agotidying: coverity issues exim-4_87_RC6
Jeremy Harris [Mon, 7 Mar 2016 18:46:41 +0000 (18:46 +0000)]
tidying: coverity issues

8 years agoDocs: typo
Jeremy Harris [Mon, 7 Mar 2016 10:14:20 +0000 (10:14 +0000)]
Docs: typo

8 years agotidying: coverity issues
Jeremy Harris [Sun, 6 Mar 2016 23:47:26 +0000 (23:47 +0000)]
tidying: coverity issues

8 years agotidying: coverity issues
Jeremy Harris [Sun, 6 Mar 2016 19:30:17 +0000 (19:30 +0000)]
tidying: coverity issues

8 years agoCoverity: attempt to quieten null-deref whines about stringhandling
Jeremy Harris [Sat, 5 Mar 2016 18:39:14 +0000 (18:39 +0000)]
Coverity: attempt to quieten null-deref whines about stringhandling

8 years agotidying: coverity issues
Jeremy Harris [Sat, 5 Mar 2016 16:04:57 +0000 (16:04 +0000)]
tidying: coverity issues

8 years agotypoes
Andreas Metzler [Sat, 5 Mar 2016 14:58:21 +0000 (14:58 +0000)]
typoes

8 years agotidying: coverity issues
Jeremy Harris [Fri, 4 Mar 2016 11:58:27 +0000 (11:58 +0000)]
tidying: coverity issues

8 years agotidying: coverity issues
Jeremy Harris [Thu, 3 Mar 2016 22:55:34 +0000 (22:55 +0000)]
tidying: coverity issues

8 years agotidying
Jeremy Harris [Thu, 3 Mar 2016 18:21:41 +0000 (18:21 +0000)]
tidying

8 years agoCutthrough: Reflect 5xx recipient reject from target to originator
Jeremy Harris [Tue, 1 Mar 2016 20:58:00 +0000 (20:58 +0000)]
Cutthrough: Reflect 5xx recipient reject from target to originator

When connection not opened by verify and target hard-rejects a RCPT,
the reject was not being passed to the originating system (just the
cutthrough connection was being dropped).  Fix this.

8 years agoTestsuite: testcases for rejected rcpt-callout-triggered cutthrough
Jeremy Harris [Tue, 1 Mar 2016 19:23:14 +0000 (19:23 +0000)]
Testsuite: testcases for rejected rcpt-callout-triggered cutthrough

8 years agoCutthrough: fix operation under -bhc to not actually deliver. Bug 1800
Jeremy Harris [Wed, 24 Feb 2016 18:19:04 +0000 (18:19 +0000)]
Cutthrough: fix operation under -bhc to not actually deliver.  Bug 1800

8 years agoSolaris /bin/sh does not understand 'export LC_ALL=C'
Heiko Schlittermann (HS12-RIPE) [Thu, 3 Mar 2016 13:16:39 +0000 (14:16 +0100)]
Solaris /bin/sh does not understand 'export LC_ALL=C'

8 years agoDelay chdir(/) until we opened the main config
Heiko Schlittermann (HS12-RIPE) [Wed, 2 Mar 2016 21:07:45 +0000 (22:07 +0100)]
Delay chdir(/) until we opened the main config

8 years agoTidying: Issues detected by gcc --fsanitize=undefined
Jeremy Harris [Fri, 26 Feb 2016 16:14:04 +0000 (16:14 +0000)]
Tidying: Issues detected by gcc --fsanitize=undefined

8 years agoMerge branch 'master'
Heiko Schlittermann (HS12-RIPE) [Wed, 2 Mar 2016 18:53:07 +0000 (19:53 +0100)]
Merge branch 'master'

8 years agoUse right type casts in string_compare_by_pointer exim-4_87_RC5
Heiko Schlittermann (HS12-RIPE) [Wed, 2 Mar 2016 16:25:01 +0000 (17:25 +0100)]
Use right type casts in string_compare_by_pointer

8 years agoRemove confusing #ifndef environ
Heiko Schlittermann (HS12-RIPE) [Wed, 2 Mar 2016 07:12:49 +0000 (08:12 +0100)]
Remove confusing #ifndef environ

8 years agoTestsuite: Adapt to portability fix in environment.c
Heiko Schlittermann (HS12-RIPE) [Wed, 2 Mar 2016 07:12:16 +0000 (08:12 +0100)]
Testsuite: Adapt to portability fix in environment.c

8 years agoMake qsort() in readconf.c more portable
Heiko Schlittermann (HS12-RIPE) [Tue, 1 Mar 2016 23:14:28 +0000 (00:14 +0100)]
Make qsort() in readconf.c more portable

8 years agoMake environment.c more portable
Heiko Schlittermann (HS12-RIPE) [Tue, 1 Mar 2016 20:11:42 +0000 (21:11 +0100)]
Make environment.c more portable

8 years agoRelease: fix release script
Heiko Schlittermann (HS12-RIPE) [Wed, 24 Feb 2016 22:59:26 +0000 (23:59 +0100)]
Release: fix release script

- accept minor version number
- allow to skip the build-of-documentation step
- allow release of "any" version from anywhere
- avoid calling "old" reversion scripts, create version.sh

8 years agoRemoved doc references to relay-test.mail-abuse.org
Nigel Metheringham [Wed, 24 Feb 2016 16:44:59 +0000 (16:44 +0000)]
Removed doc references to relay-test.mail-abuse.org

As per github ticket #37 - https://github.com/Exim/exim/issues/37

relay-test.mail-abuse.org is no longer available so references to it have been removed from the documentation.

8 years agoFix CVE-2016-1531 exim-4_87_RC4
Heiko Schlittermann (HS12-RIPE) [Thu, 28 Jan 2016 21:20:33 +0000 (22:20 +0100)]
Fix CVE-2016-1531

Add keep_environment, add_environment.
Change the working directory to "/" during the early startup
phase.

(cherry picked from commit 2b92b67bfc33efe05e6ff2ea3852731ac2273832)
(cherry picked from commit 14b82c8b736c8ed24eda144f57703cb9feac6323)
(cherry picked from commit 9ca92d0c6e9c6f161bd8111366c6952d3a9315e2)
(cherry picked from commit 0020c6d9ecfd98ed7b2b337ed4f898fdc409784b)
(cherry picked from commit e8f96966360ea8867ad6a8b5affda6c37fa4958c)
(cherry picked from commit ef6fb807c1e1a665f444f644c60c77269f7c5209)

8 years agoDocs: clarify unit of S= log line element
Jeremy Harris [Thu, 18 Feb 2016 14:20:43 +0000 (14:20 +0000)]
Docs: clarify unit of S= log line element

8 years agoCompiler quietening
Jeremy Harris [Mon, 15 Feb 2016 18:03:04 +0000 (18:03 +0000)]
Compiler quietening

8 years agoMalware: fix error logged on a scanner connect fail. Bug 1796
Jeremy Harris [Sun, 14 Feb 2016 23:04:08 +0000 (23:04 +0000)]
Malware: fix error logged on a scanner connect fail.  Bug 1796

8 years agoTLS: support build with OpenSSL 1.1.0 Bug 1771
Jeremy Harris [Mon, 8 Feb 2016 22:43:54 +0000 (22:43 +0000)]
TLS: support build with OpenSSL 1.1.0   Bug 1771

8 years agoDoc: correct minor typo
Heiko Schlittermann (HS12-RIPE) [Wed, 10 Feb 2016 09:48:13 +0000 (10:48 +0100)]
Doc: correct minor typo

8 years agoDKIM: fix selection of header for signing/verification given several. Bug 1792
Jeremy Harris [Tue, 9 Feb 2016 23:27:59 +0000 (23:27 +0000)]
DKIM: fix selection of header for signing/verification given several.  Bug 1792

8 years agoDKIM: support oversigning. Bugs 1309, 1310
Jeremy Harris [Sun, 7 Feb 2016 21:14:37 +0000 (21:14 +0000)]
DKIM: support oversigning.  Bugs 1309, 1310

8 years agoTestsuite: Support running exim under valgrind
Jeremy Harris [Sun, 7 Feb 2016 12:12:19 +0000 (12:12 +0000)]
Testsuite: Support running exim under valgrind

Fails mostly thanks to lack of suid handling, but -be tests usable
if you retry after de-suid of eximdir/exim

8 years agoRemove empty lines from .mailmap, fix root
Heiko Schlittermann (HS12-RIPE) [Mon, 8 Feb 2016 22:59:40 +0000 (23:59 +0100)]
Remove empty lines from .mailmap, fix root

8 years agoAdd .mailmap for git
Heiko Schlittermann (HS12-RIPE) [Mon, 8 Feb 2016 22:57:35 +0000 (23:57 +0100)]
Add .mailmap for git

8 years agoTestsuite: avoid retry db issue after deliberate fail subtests
Jeremy Harris [Sat, 6 Feb 2016 20:25:06 +0000 (20:25 +0000)]
Testsuite: avoid retry db issue after deliberate fail subtests

8 years agoTestsuite: avoid assuming 127.0.0.2 is a viable sending address
Jeremy Harris [Sat, 6 Feb 2016 19:58:36 +0000 (19:58 +0000)]
Testsuite: avoid assuming 127.0.0.2 is a viable sending address

8 years agoTestsuite: allow for different data arrival in SMTP synch check
Jeremy Harris [Sat, 6 Feb 2016 19:20:06 +0000 (19:20 +0000)]
Testsuite: allow for different data arrival in SMTP synch check

8 years agoTestsuite: log some stderr output on bad exit-code in --CONTINUE mode
Jeremy Harris [Sat, 6 Feb 2016 16:24:37 +0000 (16:24 +0000)]
Testsuite: log some stderr output on bad exit-code in --CONTINUE mode

8 years agoSRS: fix crash in queryprogram router when compiled with EXPERIMENTAL_SRS
Jeremy Harris [Sat, 6 Feb 2016 16:22:00 +0000 (16:22 +0000)]
SRS: fix crash in queryprogram router when compiled with EXPERIMENTAL_SRS

8 years agoTLS: Whine to log on client config of SNI under too-old OpenSSL version
Jeremy Harris [Fri, 5 Feb 2016 18:47:45 +0000 (18:47 +0000)]
TLS: Whine to log on client config of SNI under too-old OpenSSL version

8 years agoTestsuite: enforce different exim/testuser group numbers
Jeremy Harris [Fri, 5 Feb 2016 18:16:30 +0000 (18:16 +0000)]
Testsuite: enforce different exim/testuser group numbers

8 years agoTestsuite: sort logs in cases where we do parallel deliveries
Jeremy Harris [Fri, 5 Feb 2016 17:37:43 +0000 (17:37 +0000)]
Testsuite: sort logs in cases where we do parallel deliveries

8 years agoFix EXPERIMENTAL_DMARC build
Jeremy Harris [Fri, 5 Feb 2016 16:58:22 +0000 (16:58 +0000)]
Fix EXPERIMENTAL_DMARC build

Broken-by: df3def24
8 years agoTestsuite: nuke retry db after deliberate-fail subtests in ocsp testcase
Jeremy Harris [Fri, 5 Feb 2016 15:55:04 +0000 (15:55 +0000)]
Testsuite: nuke retry db after deliberate-fail subtests in ocsp testcase

8 years agoAdd backward compatibility for EXIM_TMPDIR
Heiko Schlittermann (HS12-RIPE) [Thu, 4 Feb 2016 09:00:50 +0000 (10:00 +0100)]
Add backward compatibility for EXIM_TMPDIR

8 years agoRename build-time option TMPDIR to EXIM_TMPDIR
Alexander Tsoy [Tue, 2 Feb 2016 17:56:15 +0000 (20:56 +0300)]
Rename build-time option TMPDIR to EXIM_TMPDIR

Build-time option TMPDIR included in Makefile clashes with environment
variable of the same name. This breaks tools that make use of that
variable, such as distcc.

The following example demonstrates what's going on:

$ cat Makefile
TMPDIR="/tmp"
all:
env
$ export TMPDIR=test
$ make | grep ^TMPDIR
TMPDIR="/tmp"

distcc error (note the extra quotes):
ERROR: can't use TMPDIR ""/tmp"": No such file or directory

8 years agoTestsuite: case should not depend on build-option
Jeremy Harris [Thu, 4 Feb 2016 19:08:56 +0000 (19:08 +0000)]
Testsuite: case should not depend on build-option

8 years agoTestsuite: (more) complete usage message for server
Heiko Schlittermann (HS12) [Thu, 4 Feb 2016 21:12:10 +0000 (22:12 +0100)]
Testsuite: (more) complete usage message for server

8 years agoUse GCRYPT if GNUTLS isn't good enough
Jeremy Harris [Thu, 4 Feb 2016 19:02:52 +0000 (20:02 +0100)]
Use GCRYPT if GNUTLS isn't good enough

8 years agoTestsuite: output library versions during startup
Jeremy Harris [Thu, 4 Feb 2016 14:51:31 +0000 (14:51 +0000)]
Testsuite: output library versions during startup

8 years agoDocs: add note on costs of cutthrough delivery in local-rejection cases
Jeremy Harris [Thu, 4 Feb 2016 10:30:54 +0000 (10:30 +0000)]
Docs: add note on costs of cutthrough delivery in local-rejection cases

8 years agoTestsuite: 3454: debian8 flavour
Heiko Schlittermann (HS12-RIPE) [Wed, 3 Feb 2016 22:31:58 +0000 (23:31 +0100)]
Testsuite: 3454: debian8 flavour

8 years agoTestsuite: 3450: debian8 flavour
Heiko Schlittermann (HS12-RIPE) [Wed, 3 Feb 2016 22:16:05 +0000 (23:16 +0100)]
Testsuite: 3450: debian8 flavour

8 years agoDocs: note DKIM signing options in smtp transport chapter
Jeremy Harris [Tue, 2 Feb 2016 12:44:41 +0000 (12:44 +0000)]
Docs: note DKIM signing options in smtp transport chapter

8 years agoDKIM: replace SHA and RSA routines from gnutls, under earlier library
Jeremy Harris [Mon, 1 Feb 2016 18:18:56 +0000 (18:18 +0000)]
DKIM: replace SHA and RSA routines from gnutls, under earlier library
versions, using libgcrypt and libtasn1 directly.  Bug 1772

8 years agoKeep options ordered alphabetical
Heiko Schlittermann (HS12-RIPE) [Sun, 31 Jan 2016 18:21:47 +0000 (19:21 +0100)]
Keep options ordered alphabetical

8 years agoGEF 20160130 Tiny corrections to Readme.pod
Graeme Fowler [Sat, 30 Jan 2016 17:12:24 +0000 (17:12 +0000)]
GEF 20160130 Tiny corrections to Readme.pod

8 years agoGEF 20160130 Changed date in header in test/README
Graeme Fowler [Sat, 30 Jan 2016 12:29:58 +0000 (12:29 +0000)]
GEF 20160130 Changed date in header in test/README

8 years agoFix typo
Heiko Schlittermann (HS12-RIPE) [Thu, 28 Jan 2016 21:43:28 +0000 (22:43 +0100)]
Fix typo

8 years agoDocs: clarify command string content in ${readsocket }
Jeremy Harris [Thu, 28 Jan 2016 14:52:19 +0000 (14:52 +0000)]
Docs: clarify command string content in ${readsocket }

8 years agoFix typo on ChangeLog
Heiko Schlittermann (HS12-RIPE) [Mon, 25 Jan 2016 11:52:07 +0000 (12:52 +0100)]
Fix typo on ChangeLog

8 years agoDocs: clarify use of $dkim_selector variable
Jeremy Harris [Fri, 22 Jan 2016 13:20:01 +0000 (13:20 +0000)]
Docs: clarify use of $dkim_selector variable

8 years agoPDKIM: Fix use of private-keys having trailing '=' in the base-64. Bug 1781
Jeremy Harris [Fri, 22 Jan 2016 13:17:34 +0000 (13:17 +0000)]
PDKIM: Fix use of private-keys having trailing '=' in the base-64.  Bug 1781

8 years agoCutthrough: Fix bug with dot-only line
Jeremy Harris [Thu, 21 Jan 2016 15:37:08 +0000 (15:37 +0000)]
Cutthrough: Fix bug with dot-only line

8 years agoTestuite: tidying exim-4_87_RC3
Jeremy Harris [Mon, 18 Jan 2016 16:54:45 +0000 (16:54 +0000)]
Testuite: tidying

8 years agoCopyright dates 2014, 2015
Jeremy Harris [Mon, 18 Jan 2016 15:11:44 +0000 (15:11 +0000)]
Copyright dates 2014, 2015

via:  vi $(git whatchanged --since=2014-12-31 --until=2016-01-01 | grep '^:100' | sed 's/^[^M]*M//' | grep -v 000000 | sort -u | fgrep -v test/)
(etc)

8 years agoChange notes
Jeremy Harris [Mon, 18 Jan 2016 14:34:07 +0000 (14:34 +0000)]
Change notes

8 years agoTestsuite: bounce_return_linesize_limit. Bug 1760
Jeremy Harris [Sun, 17 Jan 2016 23:36:11 +0000 (23:36 +0000)]
Testsuite: bounce_return_linesize_limit.  Bug 1760

8 years agoTidying
Jeremy Harris [Sun, 17 Jan 2016 22:45:55 +0000 (22:45 +0000)]
Tidying

8 years agoTestsuite: changes for VFRY update, 4f6ae5c314e5
Jeremy Harris [Sun, 17 Jan 2016 22:44:46 +0000 (22:44 +0000)]
Testsuite: changes for VFRY update, 4f6ae5c314e5