Skip to content

Commit 83b747a

Browse files
author
Steven Surowiec
committed
Added regex to fix __set_state issue on eval
1 parent 218c421 commit 83b747a

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

mongodbadmin.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,10 @@ function prepareValueForMongoDB($value)
100100
$customId = isset($_REQUEST['custom_id']);
101101

102102
if (is_string($value)) {
103+
$value = preg_replace('/\'_id\' => \s*MongoId::__set_state\(array\(\s*\)\)/', '\'_id\' => new MongoId("' . (isset($_REQUEST['id']) ? $_REQUEST['id'] : '') . '")', $value);
104+
$value = preg_replace('/MongoId::__set_state\(array\(\s*\)\)/', 'new MongoId()', $value);
105+
$value = preg_replace('/MongoDate::__set_state\(array\(\s*\'sec\' => (\d+),\s*\'usec\' => \d+,\s*\)\)/m', 'new MongoDate($1)', $value);
106+
103107
eval('$value = ' . $value . ';');
104108

105109
if (!$value) {

0 commit comments

Comments
 (0)