From 7bba0032fe0318399e3522687a3b1ff3a4887486 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Mon, 18 Feb 2013 15:35:02 +0100 Subject: Fix NUL characters in content-type of ms-tnef attachment (#1488964) --- program/lib/tnef_decoder.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'program/lib/tnef_decoder.php') diff --git a/program/lib/tnef_decoder.php b/program/lib/tnef_decoder.php index 28d368989..e6ccc23d7 100644 --- a/program/lib/tnef_decoder.php +++ b/program/lib/tnef_decoder.php @@ -243,16 +243,16 @@ class tnef_decoder /* Store any interesting attributes. */ switch ($attr_name) { case self::MAPI_ATTACH_LONG_FILENAME: + $value = str_replace("\0", '', $value); /* Used in preference to AFILENAME value. */ $attachment_data[0]['name'] = preg_replace('/.*[\/](.*)$/', '\1', $value); - $attachment_data[0]['name'] = str_replace("\0", '', $attachment_data[0]['name']); break; case self::MAPI_ATTACH_MIME_TAG: + $value = str_replace("\0", '', $value); /* Is this ever set, and what is format? */ - $attachment_data[0]['type'] = preg_replace('/^(.*)\/.*/', '\1', $value); + $attachment_data[0]['type'] = preg_replace('/^(.*)\/.*/', '\1', $value); $attachment_data[0]['subtype'] = preg_replace('/.*\/(.*)$/', '\1', $value); - $attachment_data[0]['subtype'] = str_replace("\0", '', $attachment_data[0]['subtype']); break; } } @@ -295,9 +295,10 @@ class tnef_decoder break; case self::AFILENAME: + $value = $this->_getx($data, $this->_geti($data, 32)); + $value = str_replace("\0", '', $value); /* Strip path. */ - $attachment_data[0]['name'] = preg_replace('/.*[\/](.*)$/', '\1', $this->_getx($data, $this->_geti($data, 32))); - $attachment_data[0]['name'] = str_replace("\0", '', $attachment_data[0]['name']); + $attachment_data[0]['name'] = preg_replace('/.*[\/](.*)$/', '\1', $value); /* Checksum */ $this->_geti($data, 16); -- cgit v1.2.3