From 94f67cb77eacaefbd5e3d47bbf5d99ce03c2dc9e Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Wed, 29 Apr 2026 13:27:33 -0400 Subject: wheel_package_free: fix NULL dereference in provides_extra loop --- src/lib/core/wheel.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/lib/core/wheel.c b/src/lib/core/wheel.c index 2132818..4bd5c64 100644 --- a/src/lib/core/wheel.c +++ b/src/lib/core/wheel.c @@ -982,13 +982,14 @@ void wheel_metadata_free(struct WheelMetadata *meta) { guard_strlist_free(&meta->requires_dist); guard_strlist_free(&meta->keywords); guard_strlist_free(&meta->license_file); - - for (size_t i = 0; meta->provides_extra[i] != NULL; i++) { - guard_free(meta->provides_extra[i]->target); - guard_strlist_free(&meta->provides_extra[i]->requires_dist); - guard_free(meta->provides_extra[i]); + if (meta->provides_extra) { + for (size_t i = 0; meta->provides_extra[i] != NULL; i++) { + guard_free(meta->provides_extra[i]->target); + guard_strlist_free(&meta->provides_extra[i]->requires_dist); + guard_free(meta->provides_extra[i]); + } + guard_free(meta->provides_extra); } - guard_free(meta->provides_extra); guard_free(meta); } -- cgit