Skip to content

Commit d8feba4

Browse files
authored
PHPC-2038: Init zval in phongo_clientencryption_init (#1303)
1 parent 6fab43c commit d8feba4

File tree

3 files changed

+14
-19
lines changed

3 files changed

+14
-19
lines changed

src/MongoDB/ClientEncryption.c

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -296,9 +296,10 @@ static mongoc_client_encryption_opts_t* phongo_clientencryption_opts_from_zval(z
296296
return NULL;
297297
} /* }}} */
298298

299-
void phongo_clientencryption_init(php_phongo_clientencryption_t* clientencryption, zval* manager, zval* options) /* {{{ */
299+
void phongo_clientencryption_init(zval* return_value, zval* manager, zval* options) /* {{{ */
300300
{
301-
mongoc_client_encryption_t* ce;
301+
php_phongo_clientencryption_t* intern;
302+
mongoc_client_encryption_t* client_encryption;
302303
mongoc_client_encryption_opts_t* opts;
303304
zval* key_vault_client_manager = manager;
304305
bson_error_t error = { 0 };
@@ -309,15 +310,18 @@ void phongo_clientencryption_init(php_phongo_clientencryption_t* clientencryptio
309310
goto cleanup;
310311
}
311312

312-
ce = mongoc_client_encryption_new(opts, &error);
313-
if (!ce) {
313+
client_encryption = mongoc_client_encryption_new(opts, &error);
314+
if (!client_encryption) {
314315
phongo_throw_exception_from_bson_error_t(&error);
315316

316317
goto cleanup;
317318
}
318319

319-
clientencryption->client_encryption = ce;
320-
ZVAL_ZVAL(&clientencryption->key_vault_client_manager, key_vault_client_manager, 1, 0);
320+
object_init_ex(return_value, php_phongo_clientencryption_ce);
321+
322+
intern = Z_CLIENTENCRYPTION_OBJ_P(return_value);
323+
intern->client_encryption = client_encryption;
324+
ZVAL_ZVAL(&intern->key_vault_client_manager, key_vault_client_manager, 1, 0);
321325

322326
cleanup:
323327
if (opts) {

src/MongoDB/ClientEncryption.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919

2020
#include <php.h>
2121

22-
#include "php_phongo.h"
23-
24-
void phongo_clientencryption_init(php_phongo_clientencryption_t* ce_obj, zval* manager, zval* options);
22+
void phongo_clientencryption_init(zval* return_value, zval* manager, zval* options);
2523

2624
#endif /* PHONGO_CLIENTENCRYPTION_H */

src/MongoDB/Manager.c

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -311,10 +311,8 @@ static PHP_METHOD(Manager, addSubscriber)
311311
Return a ClientEncryption instance */
312312
static PHP_METHOD(Manager, createClientEncryption)
313313
{
314-
zend_error_handling error_handling;
315-
php_phongo_manager_t* intern;
316-
php_phongo_clientencryption_t* clientencryption;
317-
zval* options;
314+
zend_error_handling error_handling;
315+
zval* options;
318316

319317
zend_replace_error_handling(EH_THROW, phongo_exception_from_phongo_domain(PHONGO_ERROR_INVALID_ARGUMENT), &error_handling);
320318
if (zend_parse_parameters(ZEND_NUM_ARGS(), "a", &options) == FAILURE) {
@@ -323,13 +321,8 @@ static PHP_METHOD(Manager, createClientEncryption)
323321
}
324322
zend_restore_error_handling(&error_handling);
325323

326-
intern = Z_MANAGER_OBJ_P(getThis());
327-
328-
object_init_ex(return_value, php_phongo_clientencryption_ce);
329-
clientencryption = Z_CLIENTENCRYPTION_OBJ_P(return_value);
330-
331324
/* An exception will be thrown on error. */
332-
phongo_clientencryption_init(clientencryption, getThis(), options);
325+
phongo_clientencryption_init(return_value, getThis(), options);
333326
} /* }}} */
334327

335328
/* {{{ proto MongoDB\Driver\Cursor MongoDB\Driver\Manager::executeCommand(string $db, MongoDB\Driver\Command $command[, array $options = null])

0 commit comments

Comments
 (0)