Skip to content

Commit 152f265

Browse files
authored
Revert "CDRIVER-3773 Support regular expressions with no options (#751)"
This reverts commit 2e685d1.
1 parent 2e685d1 commit 152f265

File tree

2 files changed

+15
-25
lines changed

2 files changed

+15
-25
lines changed

src/libbson/src/bson/bson-json.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1389,10 +1389,19 @@ _bson_json_read_append_regex (bson_json_reader_t *reader, /* IN */
13891389
"Missing \"$regex\" after \"$options\"");
13901390
return;
13911391
}
1392+
if (!data->regex.has_options) {
1393+
_bson_json_read_set_error (reader,
1394+
"Missing \"$options\" after \"$regex\"");
1395+
return;
1396+
}
13921397
} else if (!data->regex.has_pattern) {
13931398
_bson_json_read_set_error (
13941399
reader, "Missing \"pattern\" after \"options\" in regular expression");
13951400
return;
1401+
} else if (!data->regex.has_options) {
1402+
_bson_json_read_set_error (
1403+
reader, "Missing \"options\" after \"pattern\" in regular expression");
1404+
return;
13961405
}
13971406

13981407
if (!bson_append_regex (STACK_BSON_CHILD,

src/libbson/tests/test-json.c

Lines changed: 6 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1075,12 +1075,13 @@ test_bson_json_read_legacy_regex (void)
10751075
bson_destroy (&b);
10761076

10771077
r = bson_init_from_json (&b, "{\"a\": {\"$regex\": \"abc\"}}", -1, &error);
1078-
ASSERT_OR_PRINT (r, error);
1079-
BCON_EXTRACT (&b, "a", BCONE_REGEX (pattern, flags));
1080-
ASSERT_CMPSTR (pattern, "abc");
1081-
ASSERT_CMPSTR (flags, "");
1078+
BSON_ASSERT (!r);
1079+
ASSERT_ERROR_CONTAINS (error,
1080+
BSON_ERROR_JSON,
1081+
BSON_JSON_ERROR_READ_INVALID_PARAM,
1082+
"Missing \"$options\" after \"$regex\"");
10821083

1083-
bson_destroy (&b);
1084+
memset (&error, 0, sizeof error);
10841085

10851086
r = bson_init_from_json (&b, "{\"a\": {\"$options\": \"ix\"}}", -1, &error);
10861087
BSON_ASSERT (!r);
@@ -1090,24 +1091,6 @@ test_bson_json_read_legacy_regex (void)
10901091
"Missing \"$regex\" after \"$options\"");
10911092
}
10921093

1093-
static void
1094-
test_bson_json_read_regex_no_options (void)
1095-
{
1096-
bson_t b;
1097-
bson_error_t error;
1098-
bool r;
1099-
const char *pattern;
1100-
const char *flags;
1101-
1102-
r = bson_init_from_json (
1103-
&b, "{\"a\": {\"$regularExpression\": { \"pattern\": \"abc\"}}}", -1, &error);
1104-
ASSERT_OR_PRINT (r, error);
1105-
BCON_EXTRACT (&b, "a", BCONE_REGEX (pattern, flags));
1106-
ASSERT_CMPSTR (pattern, "abc");
1107-
ASSERT_CMPSTR (flags, "");
1108-
1109-
bson_destroy (&b);
1110-
}
11111094

11121095
static void
11131096
test_bson_json_read_regex_options_order (void)
@@ -3468,8 +3451,6 @@ test_json_install (TestSuite *suite)
34683451
suite, "/bson/json/read/dbpointer", test_bson_json_read_dbpointer);
34693452
TestSuite_Add (
34703453
suite, "/bson/json/read/legacy_regex", test_bson_json_read_legacy_regex);
3471-
TestSuite_Add (
3472-
suite, "/bson/json/read/regex_no_options", test_bson_json_read_regex_no_options);
34733454
TestSuite_Add (suite,
34743455
"/bson/json/read/regex_options_order",
34753456
test_bson_json_read_regex_options_order);

0 commit comments

Comments
 (0)