diff --git a/.github/workflows/clang-addresssanitizer.yml b/.github/workflows/clang-addresssanitizer.yml index 2d89681..5ab574f 100644 --- a/.github/workflows/clang-addresssanitizer.yml +++ b/.github/workflows/clang-addresssanitizer.yml @@ -6,6 +6,8 @@ on: schedule: - cron: '53 3 * * SUN' +permissions: {} + jobs: addresssanitizer: name: Clang AddressSanitizer diff --git a/.github/workflows/clang-analyzer.yml b/.github/workflows/clang-analyzer.yml index e6a6dec..02fa5bd 100644 --- a/.github/workflows/clang-analyzer.yml +++ b/.github/workflows/clang-analyzer.yml @@ -6,6 +6,8 @@ on: schedule: - cron: '45 3 * * SUN' +permissions: {} + jobs: run: name: "Clang Static Analysis" diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 7e28f1c..9caf243 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -6,6 +6,8 @@ on: schedule: - cron: '45 3 * * SUN' +permissions: {} + jobs: run: runs-on: ubuntu-latest diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 110e23d..ce71c02 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -6,6 +6,8 @@ on: schedule: - cron: '45 3 * * SUN' +permissions: {} + jobs: run: runs-on: ${{ matrix.operating-system }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 40d89d4..c8c147b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ CHANGELOG ========= +1.12.1 +------------------- + +* The C extension now checks that the database metadata lookup was + successful. + 1.12.0 (2024-11-14) ------------------- 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 =