From 8cb9ffcb99e6e280d1b9e7c3abe9397d12a8be82 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 91b1761..415def9 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