Skip to content

Merge v1.21 into v2.1 #1843

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 12, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .evergreen/config/generated/build/build-libmongoc.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .evergreen/config/templates/build/build-libmongoc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
- func: "compile driver"
vars:
PHP_VERSION: "%phpVersion%"
LIBMONGOC_VERSION: "1.30.1"
LIBMONGOC_VERSION: "1.30.5"
- func: "upload build"

- name: "build-php-%phpVersion%-libmongoc-next-stable"
Expand Down
10 changes: 5 additions & 5 deletions config.m4
Original file line number Diff line number Diff line change
Expand Up @@ -240,26 +240,26 @@ if test "$PHP_MONGODB" != "no"; then
PHP_MONGODB_MONGOCRYPT_VERSION_STRING="None"

if test "$PHP_MONGODB_SYSTEM_LIBS" != "no"; then
PKG_CHECK_MODULES([PHP_MONGODB_BSON], [libbson-1.0 >= 1.30.4], [
PKG_CHECK_MODULES([PHP_MONGODB_BSON], [libbson-1.0 >= 1.30.5], [
PHP_MONGODB_BSON_VERSION=`$PKG_CONFIG libbson-1.0 --modversion`
PHP_MONGODB_BSON_VERSION_STRING="System ($PHP_MONGODB_BSON_VERSION)"

PHP_MONGODB_CFLAGS="$PHP_MONGODB_CFLAGS $PHP_MONGODB_BSON_CFLAGS"
PHP_EVAL_LIBLINE($PHP_MONGODB_BSON_LIBS, MONGODB_SHARED_LIBADD)
AC_DEFINE(HAVE_SYSTEM_LIBBSON, 1, [Use system libbson])
],[
AC_MSG_ERROR([Could not find system library for libbson >= 1.30.4])
AC_MSG_ERROR([Could not find system library for libbson >= 1.30.5])
])

PKG_CHECK_MODULES([PHP_MONGODB_MONGOC], [libmongoc-1.0 >= 1.30.4], [
PKG_CHECK_MODULES([PHP_MONGODB_MONGOC], [libmongoc-1.0 >= 1.30.5], [
PHP_MONGODB_BSON_VERSION=`$PKG_CONFIG libbson-1.0 --modversion`
PHP_MONGODB_BSON_VERSION_STRING="System ($PHP_MONGODB_BSON_VERSION)"

PHP_MONGODB_CFLAGS="$PHP_MONGODB_CFLAGS $PHP_MONGODB_MONGOC_CFLAGS"
PHP_EVAL_LIBLINE($PHP_MONGODB_MONGOC_LIBS, MONGODB_SHARED_LIBADD)
AC_DEFINE(HAVE_SYSTEM_LIBMONGOC, 1, [Use system libmongoc])
],[
AC_MSG_ERROR(Could not find system library for libmongoc >= 1.30.4)
AC_MSG_ERROR(Could not find system library for libmongoc >= 1.30.5)
])

if test "$PHP_MONGODB_CLIENT_SIDE_ENCRYPTION" != "no"; then
Expand Down Expand Up @@ -358,7 +358,7 @@ if test "$PHP_MONGODB" != "no"; then
dnl Sources below are updated by scripts/update-submodule-sources.php
PHP_MONGODB_COMMON_SOURCES="common-atomic.c common-b64.c common-json.c common-md5.c common-oid.c common-string.c common-thread.c"
PHP_MONGODB_KMS_MESSAGE_SOURCES="hexlify.c kms_azure_request.c kms_b64.c kms_caller_identity_request.c kms_crypto_apple.c kms_crypto_libcrypto.c kms_crypto_none.c kms_crypto_windows.c kms_decrypt_request.c kms_encrypt_request.c kms_gcp_request.c kms_kmip_reader_writer.c kms_kmip_request.c kms_kmip_response.c kms_kmip_response_parser.c kms_kv_list.c kms_message.c kms_port.c kms_request.c kms_request_opt.c kms_request_str.c kms_response.c kms_response_parser.c sort.c"
PHP_MONGODB_BSON_SOURCES="bcon.c bson-atomic.c bson.c bson-clock.c bson-context.c bson-decimal128.c bson-error.c bson-iso8601.c bson-iter.c bson-json.c bson-keys.c bson-md5.c bson-memory.c bson-oid.c bson-reader.c bson-string.c bson-timegm.c bson-utf8.c bson-value.c bson-version-functions.c bson-writer.c"
PHP_MONGODB_BSON_SOURCES="bcon.c bson-atomic.c bson.c bson-clock.c bson-context.c bson-decimal128.c bson-error.c bson-iso8601.c bson-iter.c bson-json.c bson-keys.c bson-md5.c bson-memory.c bson-oid.c bson-reader.c bson-string.c bson-timegm.c bson-utf8.c bson-value.c bson-version-functions.c bson-writer.c validate.c"
PHP_MONGODB_JSONSL_SOURCES="jsonsl.c"
PHP_MONGODB_MONGOC_SOURCES="mcd-azure.c mcd-nsinfo.c mcd-rpc.c mongoc-aggregate.c mongoc-apm.c mongoc-array.c mongoc-async.c mongoc-async-cmd.c mongoc-buffer.c mongoc-bulk-operation.c mongoc-bulkwrite.c mongoc-change-stream.c mongoc-client.c mongoc-client-pool.c mongoc-client-session.c mongoc-client-side-encryption.c mongoc-cluster-aws.c mongoc-cluster.c mongoc-cluster-cyrus.c mongoc-cluster-sasl.c mongoc-cluster-sspi.c mongoc-cmd.c mongoc-collection.c mongoc-compression.c mongoc-counters.c mongoc-crypt.c mongoc-crypto.c mongoc-crypto-cng.c mongoc-crypto-common-crypto.c mongoc-crypto-openssl.c mongoc-cursor-array.c mongoc-cursor.c mongoc-cursor-change-stream.c mongoc-cursor-cmd.c mongoc-cursor-cmd-deprecated.c mongoc-cursor-find.c mongoc-cursor-find-cmd.c mongoc-cursor-find-opquery.c mongoc-cursor-legacy.c mongoc-cyrus.c mongoc-database.c mongoc-deprioritized-servers.c mongoc-error.c mongoc-find-and-modify.c mongoc-flags.c mongoc-generation-map.c mongoc-gridfs-bucket.c mongoc-gridfs-bucket-file.c mongoc-gridfs.c mongoc-gridfs-file.c mongoc-gridfs-file-list.c mongoc-gridfs-file-page.c mongoc-handshake.c mongoc-host-list.c mongoc-http.c mongoc-index.c mongoc-init.c mongoc-interrupt.c mongoc-libressl.c mongoc-linux-distro-scanner.c mongoc-list.c mongoc-log-and-monitor-private.c mongoc-log.c mongoc-matcher.c mongoc-matcher-op.c mongoc-memcmp.c mongoc-ocsp-cache.c mongoc-opcode.c mongoc-openssl.c mongoc-optional.c mongoc-opts.c mongoc-opts-helpers.c mongoc-queue.c mongoc-rand-cng.c mongoc-rand-common-crypto.c mongoc-rand-openssl.c mongoc-read-concern.c mongoc-read-prefs.c mongoc-rpc.c mongoc-sasl.c mongoc-scram.c mongoc-secure-channel.c mongoc-secure-transport.c mongoc-server-api.c mongoc-server-description.c mongoc-server-monitor.c mongoc-server-stream.c mongoc-set.c mongoc-shared.c mongoc-socket.c mongoc-ssl.c mongoc-sspi.c mongoc-stream-buffered.c mongoc-stream.c mongoc-stream-file.c mongoc-stream-gridfs.c mongoc-stream-gridfs-download.c mongoc-stream-gridfs-upload.c mongoc-stream-socket.c mongoc-stream-tls.c mongoc-stream-tls-libressl.c mongoc-stream-tls-openssl-bio.c mongoc-stream-tls-openssl.c mongoc-stream-tls-secure-channel.c mongoc-stream-tls-secure-transport.c mongoc-structured-log.c mongoc-timeout.c mongoc-topology-background-monitoring.c mongoc-topology.c mongoc-topology-description-apm.c mongoc-topology-description.c mongoc-topology-scanner.c mongoc-ts-pool.c mongoc-uri.c mongoc-util.c mongoc-version-functions.c mongoc-write-command.c mongoc-write-concern.c service-gcp.c"
PHP_MONGODB_UTF8PROC_SOURCES="utf8proc.c"
Expand Down
2 changes: 1 addition & 1 deletion config.w32
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ if (PHP_MONGODB != "no") {
// Sources below are updated by scripts/update-submodule-sources.php
var PHP_MONGODB_COMMON_SOURCES="common-atomic.c common-b64.c common-json.c common-md5.c common-oid.c common-string.c common-thread.c"
var PHP_MONGODB_KMS_MESSAGE_SOURCES="hexlify.c kms_azure_request.c kms_b64.c kms_caller_identity_request.c kms_crypto_apple.c kms_crypto_libcrypto.c kms_crypto_none.c kms_crypto_windows.c kms_decrypt_request.c kms_encrypt_request.c kms_gcp_request.c kms_kmip_reader_writer.c kms_kmip_request.c kms_kmip_response.c kms_kmip_response_parser.c kms_kv_list.c kms_message.c kms_port.c kms_request.c kms_request_opt.c kms_request_str.c kms_response.c kms_response_parser.c sort.c";
var PHP_MONGODB_BSON_SOURCES="bcon.c bson-atomic.c bson.c bson-clock.c bson-context.c bson-decimal128.c bson-error.c bson-iso8601.c bson-iter.c bson-json.c bson-keys.c bson-md5.c bson-memory.c bson-oid.c bson-reader.c bson-string.c bson-timegm.c bson-utf8.c bson-value.c bson-version-functions.c bson-writer.c";
var PHP_MONGODB_BSON_SOURCES="bcon.c bson-atomic.c bson.c bson-clock.c bson-context.c bson-decimal128.c bson-error.c bson-iso8601.c bson-iter.c bson-json.c bson-keys.c bson-md5.c bson-memory.c bson-oid.c bson-reader.c bson-string.c bson-timegm.c bson-utf8.c bson-value.c bson-version-functions.c bson-writer.c validate.c";
var PHP_MONGODB_JSONSL_SOURCES="jsonsl.c";
var PHP_MONGODB_MONGOC_SOURCES="mcd-azure.c mcd-nsinfo.c mcd-rpc.c mongoc-aggregate.c mongoc-apm.c mongoc-array.c mongoc-async.c mongoc-async-cmd.c mongoc-buffer.c mongoc-bulk-operation.c mongoc-bulkwrite.c mongoc-change-stream.c mongoc-client.c mongoc-client-pool.c mongoc-client-session.c mongoc-client-side-encryption.c mongoc-cluster-aws.c mongoc-cluster.c mongoc-cluster-cyrus.c mongoc-cluster-sasl.c mongoc-cluster-sspi.c mongoc-cmd.c mongoc-collection.c mongoc-compression.c mongoc-counters.c mongoc-crypt.c mongoc-crypto.c mongoc-crypto-cng.c mongoc-crypto-common-crypto.c mongoc-crypto-openssl.c mongoc-cursor-array.c mongoc-cursor.c mongoc-cursor-change-stream.c mongoc-cursor-cmd.c mongoc-cursor-cmd-deprecated.c mongoc-cursor-find.c mongoc-cursor-find-cmd.c mongoc-cursor-find-opquery.c mongoc-cursor-legacy.c mongoc-cyrus.c mongoc-database.c mongoc-deprioritized-servers.c mongoc-error.c mongoc-find-and-modify.c mongoc-flags.c mongoc-generation-map.c mongoc-gridfs-bucket.c mongoc-gridfs-bucket-file.c mongoc-gridfs.c mongoc-gridfs-file.c mongoc-gridfs-file-list.c mongoc-gridfs-file-page.c mongoc-handshake.c mongoc-host-list.c mongoc-http.c mongoc-index.c mongoc-init.c mongoc-interrupt.c mongoc-libressl.c mongoc-linux-distro-scanner.c mongoc-list.c mongoc-log-and-monitor-private.c mongoc-log.c mongoc-matcher.c mongoc-matcher-op.c mongoc-memcmp.c mongoc-ocsp-cache.c mongoc-opcode.c mongoc-openssl.c mongoc-optional.c mongoc-opts.c mongoc-opts-helpers.c mongoc-queue.c mongoc-rand-cng.c mongoc-rand-common-crypto.c mongoc-rand-openssl.c mongoc-read-concern.c mongoc-read-prefs.c mongoc-rpc.c mongoc-sasl.c mongoc-scram.c mongoc-secure-channel.c mongoc-secure-transport.c mongoc-server-api.c mongoc-server-description.c mongoc-server-monitor.c mongoc-server-stream.c mongoc-set.c mongoc-shared.c mongoc-socket.c mongoc-ssl.c mongoc-sspi.c mongoc-stream-buffered.c mongoc-stream.c mongoc-stream-file.c mongoc-stream-gridfs.c mongoc-stream-gridfs-download.c mongoc-stream-gridfs-upload.c mongoc-stream-socket.c mongoc-stream-tls.c mongoc-stream-tls-libressl.c mongoc-stream-tls-openssl-bio.c mongoc-stream-tls-openssl.c mongoc-stream-tls-secure-channel.c mongoc-stream-tls-secure-transport.c mongoc-structured-log.c mongoc-timeout.c mongoc-topology-background-monitoring.c mongoc-topology.c mongoc-topology-description-apm.c mongoc-topology-description.c mongoc-topology-scanner.c mongoc-ts-pool.c mongoc-uri.c mongoc-util.c mongoc-version-functions.c mongoc-write-command.c mongoc-write-concern.c service-gcp.c";
var PHP_MONGODB_UTF8PROC_SOURCES="utf8proc.c";
Expand Down
17 changes: 9 additions & 8 deletions sbom.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,34 +19,34 @@
"version": "1.12.0"
},
{
"bom-ref": "pkg:github/mongodb/mongo-c-driver@1.30.4",
"bom-ref": "pkg:github/mongodb/mongo-c-driver@1.30.5",
"externalReferences": [
{
"type": "distribution",
"url": "https://github.com/mongodb/mongo-c-driver/archive/refs/tags/1.30.4.tar.gz"
"url": "https://github.com/mongodb/mongo-c-driver/archive/refs/tags/1.30.5.tar.gz"
},
{
"type": "website",
"url": "https://github.com/mongodb/mongo-c-driver/tree/1.30.4"
"url": "https://github.com/mongodb/mongo-c-driver/tree/1.30.5"
}
],
"group": "mongodb",
"name": "mongo-c-driver",
"purl": "pkg:github/mongodb/mongo-c-driver@1.30.4",
"purl": "pkg:github/mongodb/mongo-c-driver@1.30.5",
"type": "library",
"version": "1.30.4"
"version": "1.30.5"
}
],
"dependencies": [
{
"ref": "pkg:github/mongodb/libmongocrypt@1.12.0"
},
{
"ref": "pkg:github/mongodb/mongo-c-driver@1.30.4"
"ref": "pkg:github/mongodb/mongo-c-driver@1.30.5"
}
],
"metadata": {
"timestamp": "2025-05-12T09:39:06.555660+00:00",
"timestamp": "2025-06-10T10:24:13.960044+00:00",
"tools": [
{
"externalReferences": [
Expand Down Expand Up @@ -93,5 +93,6 @@
"version": 12,
"$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json",
"bomFormat": "CycloneDX",
"specVersion": "1.5"
"specVersion": "1.5",
"vulnerabilities": []
}
2 changes: 1 addition & 1 deletion src/LIBMONGOC_VERSION_CURRENT
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.30.4
1.30.5
2 changes: 1 addition & 1 deletion src/libmongoc
Submodule libmongoc updated 39 files
+3 −3 .evergreen/scripts/check-preludes.py
+2 −4 .evergreen/scripts/run-auth-tests.sh
+16 −0 NEWS
+1 −1 VERSION_CURRENT
+1 −1 etc/prior_version.txt
+20 −0 src/libbson/NEWS
+3 −0 src/libbson/doc/bson_validate_flags_t.rst
+1 −1 src/libbson/src/bson/bson-error.c
+38 −9 src/libbson/src/bson/bson-types.h
+12 −227 src/libbson/src/bson/bson.c
+37 −0 src/libbson/src/bson/validate-private.h
+569 −0 src/libbson/src/bson/validate.c
+4 −0 src/libbson/tests/test-bson-error.c
+58 −438 src/libbson/tests/test-bson.c
+2,511 −0 src/libbson/tests/test-validate.generated.c
+1,479 −0 src/libbson/tests/validate-tests.py
+1 −0 src/libmongoc/CMakeLists.txt
+ src/libmongoc/doc/includes/libbson.inv
+4 −13 src/libmongoc/src/mongoc/mongoc-client-side-encryption.c
+4 −7 src/libmongoc/src/mongoc/mongoc-client.c
+6 −0 src/libmongoc/src/mongoc/mongoc-error-private.h
+37 −0 src/libmongoc/src/mongoc/mongoc-error.c
+4 −1 src/libmongoc/src/mongoc/mongoc-handshake.c
+4 −10 src/libmongoc/src/mongoc/mongoc-openssl.c
+7 −3 src/libmongoc/src/mongoc/mongoc-secure-channel-private.h
+369 −228 src/libmongoc/src/mongoc/mongoc-secure-channel.c
+4 −10 src/libmongoc/src/mongoc/mongoc-sspi.c
+2 −17 src/libmongoc/src/mongoc/mongoc-stream-tls-openssl.c
+1 −0 src/libmongoc/src/mongoc/mongoc-stream-tls-secure-channel-private.h
+13 −16 src/libmongoc/src/mongoc/mongoc-stream-tls-secure-channel.c
+13 −8 src/libmongoc/src/mongoc/mongoc-util.c
+4 −12 src/libmongoc/tests/TestSuite.c
+1 −0 src/libmongoc/tests/test-libmongoc-main.c
+12 −10 src/libmongoc/tests/test-mongoc-bulk.c
+4 −4 src/libmongoc/tests/test-mongoc-collection.c
+8 −2 src/libmongoc/tests/test-mongoc-cursor.c
+41 −0 src/libmongoc/tests/test-mongoc-error.c
+192 −1 src/libmongoc/tests/test-mongoc-x509.c
+49 −0 src/libmongoc/tests/x509gen/client-pkcs8-unencrypted.pem
9 changes: 1 addition & 8 deletions tests/bulk/bulkwrite-insert_error-001.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,12 @@ $bulk = new MongoDB\Driver\BulkWrite;

echo throws(function() use ($bulk) {
$bulk->insert(['' => 1]);
}, 'MongoDB\Driver\Exception\InvalidArgumentException'), "\n\n";

echo throws(function() use ($bulk) {
$bulk->insert(["\xc3\x28" => 1]);
}, 'MongoDB\Driver\Exception\InvalidArgumentException'), "\n";

?>
===DONE===
<?php exit(0); ?>
--EXPECT--
OK: Got MongoDB\Driver\Exception\InvalidArgumentException
invalid document for insert: empty key

OK: Got MongoDB\Driver\Exception\InvalidArgumentException
invalid document for insert: corrupt BSON
invalid document for insert: Element key cannot be an empty string
===DONE===
9 changes: 1 addition & 8 deletions tests/bulk/bulkwrite-update_error-001.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,12 @@ $bulk = new MongoDB\Driver\BulkWrite;

echo throws(function() use ($bulk) {
$bulk->update(['x' => 1], ['' => 1]);
}, 'MongoDB\Driver\Exception\InvalidArgumentException'), "\n\n";

echo throws(function() use ($bulk) {
$bulk->update(['x' => 1], ["\xc3\x28" => 1]);
}, 'MongoDB\Driver\Exception\InvalidArgumentException'), "\n";

?>
===DONE===
<?php exit(0); ?>
--EXPECT--
OK: Got MongoDB\Driver\Exception\InvalidArgumentException
invalid argument for replace: empty key

OK: Got MongoDB\Driver\Exception\InvalidArgumentException
invalid argument for replace: corrupt BSON
invalid argument for replace: Element key cannot be an empty string
===DONE===
9 changes: 1 addition & 8 deletions tests/bulk/bulkwrite-update_error-002.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,6 @@ echo throws(function() use ($bulk) {
$bulk->update(['x' => 1], ['$set' => ['x' => ['' => 1]]]);
}, 'MongoDB\Driver\Exception\InvalidArgumentException'), "\n\n";

echo throws(function() use ($bulk) {
$bulk->update(['x' => 1], ['$set' => ['x' => ["\xc3\x28" => 1]]]);
}, 'MongoDB\Driver\Exception\InvalidArgumentException'), "\n\n";

/* This newObj argument mixes an update and replacement document, but
* php_phongo_bulkwrite_update_has_operators() will categorize it as an update
* due to the presence of an atomic operator. As such, _mongoc_validate_update()
Expand All @@ -28,10 +24,7 @@ echo throws(function() use ($bulk) {
<?php exit(0); ?>
--EXPECT--
OK: Got MongoDB\Driver\Exception\InvalidArgumentException
invalid argument for update: empty key

OK: Got MongoDB\Driver\Exception\InvalidArgumentException
invalid argument for update: corrupt BSON
invalid argument for update: Element key cannot be an empty string

OK: Got MongoDB\Driver\Exception\InvalidArgumentException
Invalid key 'z': update only works with $ operators and pipelines
Expand Down
Loading