From 2dbf196d3147fd87e0539a45e01a98e4d719389f Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Tue, 12 May 2026 11:01:37 -0400 Subject: Usable lines denote the number of entries * reduce complexity * 'x' should not overflow --- src/lib/core/wheel.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/lib/core/wheel.c b/src/lib/core/wheel.c index 2162dae..e94060a 100644 --- a/src/lib/core/wheel.c +++ b/src/lib/core/wheel.c @@ -1133,16 +1133,16 @@ int wheel_get_entry_point(struct Wheel *pkg, const char *filename) { usable_lines--; } } + pkg->num_entry_point = usable_lines; - pkg->entry_point = calloc(usable_lines + 1, sizeof(*pkg->entry_point)); + pkg->entry_point = calloc(pkg->num_entry_point + 1, sizeof(*pkg->entry_point)); if (!pkg->entry_point) { goto GEP_FAIL; } - for (size_t i = 0; i < usable_lines; i++) { + for (size_t i = 0; i < pkg->num_entry_point; i++) { pkg->entry_point[i] = calloc(1, sizeof(*pkg->entry_point[0])); if (!pkg->entry_point[i]) { - guard_array_n_free(pkg->entry_point, usable_lines + 1); goto GEP_FAIL; } } @@ -1198,6 +1198,9 @@ int wheel_get_entry_point(struct Wheel *pkg, const char *filename) { return 0; GEP_FAIL: + if (pkg->entry_point) { + guard_array_n_free(pkg->entry_point, pkg->num_entry_point); + } guard_strlist_free(&lines); guard_free(data); return -1; -- cgit