aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2026-04-29 13:27:33 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2026-04-29 13:27:33 -0400
commit8cb9ffcb99e6e280d1b9e7c3abe9397d12a8be82 (patch)
tree6cfebfba86ce4697a39765a6f776f21369819797
parent17767f81876e781109ac06d174dbdc0c164fabf0 (diff)
downloadstasis-8cb9ffcb99e6e280d1b9e7c3abe9397d12a8be82.tar.gz
wheel_package_free: fix NULL dereference in provides_extra loop
-rw-r--r--src/lib/core/wheel.c13
1 files 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);
}