From 4a671e0ba3a48a255071f9409341cf38b2ab8624 Mon Sep 17 00:00:00 2001 From: Gregory Oschwald Date: Thu, 23 Jan 2025 15:06:24 -0800 Subject: [PATCH] Check MMDB_get_metadata_as_entry_data_list return value --- ext/maxminddb.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ext/maxminddb.c b/ext/maxminddb.c index 20e2bbf..b4e078b 100644 --- a/ext/maxminddb.c +++ b/ext/maxminddb.c @@ -336,7 +336,15 @@ PHP_METHOD(MaxMind_Db_Reader, metadata) { object_init_ex(return_value, metadata_ce); MMDB_entry_data_list_s *entry_data_list; - MMDB_get_metadata_as_entry_data_list(mmdb_obj->mmdb, &entry_data_list); + int status = + MMDB_get_metadata_as_entry_data_list(mmdb_obj->mmdb, &entry_data_list); + if (status != MMDB_SUCCESS) { + zend_throw_exception_ex(maxminddb_exception_ce, + 0 TSRMLS_CC, + "Error while decoding metadata. %s", + MMDB_strerror(status)); + return; + } zval metadata_array; const MMDB_entry_data_list_s *rv =