projects
/
oweals
/
opkg-lede.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Free memory used when parsing a control file.
[oweals/opkg-lede.git]
/
libopkg
/
pkg.c
diff --git
a/libopkg/pkg.c
b/libopkg/pkg.c
index 0c7bb5ae5eaf68074213037fab4787ba492fc0dd..4496bfd098f26a836cc158062e020839a20f99a9 100644
(file)
--- a/
libopkg/pkg.c
+++ b/
libopkg/pkg.c
@@
-284,7
+284,7
@@
void pkg_deinit(pkg_t *pkg)
int pkg_init_from_file(pkg_t *pkg, const char *filename)
{
int err;
int pkg_init_from_file(pkg_t *pkg, const char *filename)
{
int err;
- char **raw;
+ char **raw
, **raw_start
;
FILE *control_file;
err = pkg_init(pkg);
FILE *control_file;
err = pkg_init(pkg);
@@
-297,11
+297,17
@@
int pkg_init_from_file(pkg_t *pkg, const char *filename)
if (err) { return err; }
rewind(control_file);
if (err) { return err; }
rewind(control_file);
- raw = read_raw_pkgs_from_stream(control_file);
+ raw = r
aw_start = r
ead_raw_pkgs_from_stream(control_file);
pkg_parse_raw(pkg, &raw, NULL, NULL);
fclose(control_file);
pkg_parse_raw(pkg, &raw, NULL, NULL);
fclose(control_file);
+ raw = raw_start;
+ while (*raw) {
+ free(*raw++);
+ }
+ free(raw_start);
+
return 0;
}
return 0;
}