@@ 271-288 (lines=18) @@ | ||
268 | * |
|
269 | * @return mixed|null|string |
|
270 | */ |
|
271 | private function _getReversePath(Swift_Mime_Message $message) |
|
272 | { |
|
273 | $return = $message->getReturnPath(); |
|
274 | $sender = $message->getSender(); |
|
275 | $from = $message->getFrom(); |
|
276 | $path = null; |
|
277 | if (!empty($return)) { |
|
278 | $path = $return; |
|
279 | } elseif (!empty($sender)) { |
|
280 | $keys = array_keys($sender); |
|
281 | $path = array_shift($keys); |
|
282 | } elseif (!empty($from)) { |
|
283 | $keys = array_keys($from); |
|
284 | $path = array_shift($keys); |
|
285 | } |
|
286 | ||
287 | return $path; |
|
288 | } |
|
289 | ||
290 | /** |
|
291 | * Fix CVE-2016-10074 by disallowing potentially unsafe shell characters. |
@@ 413-432 (lines=20) @@ | ||
410 | * |
|
411 | * @return mixed|null|string |
|
412 | */ |
|
413 | protected function _getReversePath(Swift_Mime_Message $message) |
|
414 | { |
|
415 | $return = $message->getReturnPath(); |
|
416 | $sender = $message->getSender(); |
|
417 | $from = $message->getFrom(); |
|
418 | $path = null; |
|
419 | ||
420 | if (!empty($return)) { |
|
421 | $path = $return; |
|
422 | } elseif (!empty($sender)) { |
|
423 | // don't use array_keys |
|
424 | reset($sender); // reset Pointer to first pos |
|
425 | $path = key($sender); // get key |
|
426 | } elseif (!empty($from)) { |
|
427 | reset($from); // reset Pointer to first pos |
|
428 | $path = key($from); // get key |
|
429 | } |
|
430 | ||
431 | return $path; |
|
432 | } |
|
433 | ||
434 | /** |
|
435 | * Throw a TransportException, first sending it to any listeners. |