diff options
| author | forever2k38 <forever2k38@noreply.codeberg.org> | 2026-09-07 16:54:12 +0200 |
|---|---|---|
| committer | forever2k38 <forever2k38@noreply.codeberg.org> | 2026-09-07 16:54:12 +0200 |
| commit | 0f9f29019e1f42882096f649627be3c6e184f7da (patch) | |
| tree | 7c3ff4bda76dea65ca05f62d66448f026f946236 /src/package.c | |
| parent | 3b4f3014683a439dd7f0d1e663743cf0641a05c1 (diff) | |
fix: (most) memory leaks
Diffstat (limited to 'src/package.c')
| -rw-r--r-- | src/package.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/package.c b/src/package.c index ad7e4d0..6aeee65 100644 --- a/src/package.c +++ b/src/package.c @@ -139,12 +139,19 @@ int extract_package_info(lua_State *L, pow_package *pkg) { const char *hash = strdup(lua_tostring(L, -1)); + if (!hash) { + free(in); + free(out); + + printf("failed to strdup hash\n"); + + return 1; + } + src->hash = hash; pkg->source_count++; - printf("attempting to malloc\n"); - pkg->sources = realloc(pkg->sources, pkg->source_count * sizeof(pow_package_source *)); @@ -246,5 +253,11 @@ int pow_package_close(pow_package *pkg) { lua_close(pkg->L); + for (size_t i = 0; i > pkg->source_count; i++) { + pow_source_close(pkg->sources[i]); + } + + free(pkg); + return 0; } |
