Merge branch 'MDL-58121-master' of https://github.com/snake/moodle

This commit is contained in:
Dan Poltawski
2017-03-20 13:15:07 +00:00
2 changed files with 14 additions and 0 deletions
+1
View File
@@ -5961,6 +5961,7 @@ function email_to_user($user, $from, $subject, $messagetext, $messagehtml = '',
if ($attachment && $attachname) {
if (preg_match( "~\\.\\.~" , $attachment )) {
// Security check for ".." in dir path.
$supportuser = core_user::get_support_user();
$temprecipients[] = array($supportuser->email, fullname($supportuser, true));
$mail->addStringAttachment('Error in attachment. User attempted to attach a filename with a unsafe name.', 'error.txt', '8bit', 'text/plain');
} else {
+13
View File
@@ -2859,6 +2859,19 @@ class core_moodlelib_testcase extends advanced_testcase {
$this->assertNotEquals($CFG->noreplyaddress, $result[0]->from);
$this->assertEquals($CFG->noreplyaddress, $result[1]->from);
$sink->close();
// Try to send an unsafe attachment, we should see an error message in the eventual mail body.
$attachment = '../test.txt';
$attachname = 'txt';
$sink = $this->redirectEmails();
email_to_user($user1, $user2, $subject, $messagetext, '', $attachment, $attachname);
$this->assertSame(1, $sink->count());
$result = $sink->get_messages();
$this->assertCount(1, $result);
$this->assertContains('error.txt', $result[0]->body);
$this->assertContains('Error in attachment. User attempted to attach a filename with a unsafe name.', $result[0]->body);
$sink->close();
}
/**