aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2026-05-12 11:01:37 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2026-05-12 11:01:37 -0400
commit2dbf196d3147fd87e0539a45e01a98e4d719389f (patch)
treebc7a5a043b4465ad3b8f61062695fbd3819e4cbb /src
parent77aedfe62eba8e2d3beca7a3ada7c29aa8d09e09 (diff)
downloadstasis-2dbf196d3147fd87e0539a45e01a98e4d719389f.tar.gz
Usable lines denote the number of entries
* reduce complexity * 'x' should not overflow
Diffstat (limited to 'src')
-rw-r--r--src/lib/core/wheel.c9
1 files 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;