From fb7d1b34ef2e45a094e30bb3b5ebe48f4f6bb4c9 Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Sat, 3 Dec 2022 20:56:16 +0800 Subject: [PATCH] MDL-76559 core: validate_email should not accept empty values --- lib/tests/weblib_test.php | 14 ++++++++++++++ lib/weblib.php | 7 ++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/tests/weblib_test.php b/lib/tests/weblib_test.php index a6c6aa9b3c3..f481635eb5d 100644 --- a/lib/tests/weblib_test.php +++ b/lib/tests/weblib_test.php @@ -595,6 +595,20 @@ EXPECTED; 'result' => false ], + // Empty e-mail addresess are not valid. + [ + 'email' => '', + 'result' => false, + ], + [ + 'email' => null, + 'result' => false, + ], + [ + 'email' => false, + 'result' => false, + ], + // Extra email addresses from Wikipedia page on Email Addresses. // Valid. [ diff --git a/lib/weblib.php b/lib/weblib.php index 16c64967b41..932dfe867de 100644 --- a/lib/weblib.php +++ b/lib/weblib.php @@ -1108,7 +1108,12 @@ function page_get_doc_link_path(moodle_page $page) { */ function validate_email($address) { global $CFG; - require_once($CFG->libdir.'/phpmailer/moodle_phpmailer.php'); + + if ($address === null || $address === '') { + return false; + } + + require_once("{$CFG->libdir}/phpmailer/moodle_phpmailer.php"); return moodle_phpmailer::validateAddress($address) && !preg_match('/[<>]/', $address); }