From f7eccd4bb54039f94312a56b40599d7cb446951e Mon Sep 17 00:00:00 2001 From: ticktock35 Date: Mon, 15 Dec 2008 00:18:44 -0500 Subject: opkg: (leak fixing, day 2) lots and lots of memory leaks fixed git-svn-id: http://opkg.googlecode.com/svn/trunk@115 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358 --- (limited to 'libopkg/pkg_parse.c') diff --git a/libopkg/pkg_parse.c b/libopkg/pkg_parse.c index cd0c6dc..cf3a882 100644 --- a/libopkg/pkg_parse.c +++ b/libopkg/pkg_parse.c @@ -140,12 +140,15 @@ int parseVersion(pkg_t *pkg, char *raw) pkg->revision = ""; pkg->familiar_revision = ""; + if (!pkg->version) + { pkg->version= malloc(strlen(raw)+1); if ( pkg->version == NULL ) { fprintf(stderr, "%s: out of memory \n", __FUNCTION__); return ENOMEM; } strcpy(pkg->version, raw); + } hyphen= strrchr(pkg->version,'-'); @@ -304,6 +307,7 @@ int pkg_parse_raw(pkg_t *pkg, char ***raw, pkg_src_t *src, pkg_dest_t *dest) else if(isGenericFieldType("Installed-Time:", *lines)) { char *time_str = parseGenericFieldType("Installed-Time", *lines); pkg->installed_time = strtoul(time_str, NULL, 0); + free (time_str); } break; @@ -376,7 +380,11 @@ out:; *raw = lines; /* If the ipk has not a Provides line, we insert our false line */ if ( pkg_false_provides==1) - pkg->provides_str = parseDependsString ((char *)"Provides: opkg_internal_use_only ", &pkg->provides_count); + { + pkg->provides_count = 1; + pkg->provides_str = malloc (sizeof (char*)); + pkg->provides_str[0] = strdup ("opkg_internal_use_only"); + } if (pkg->name) { return 0; -- cgit v0.9.1