Fix some memory leaks.
authorgraham.gower <graham.gower@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>
Fri, 30 Oct 2009 06:37:09 +0000 (06:37 +0000)
committergraham.gower <graham.gower@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>
Fri, 30 Oct 2009 06:37:09 +0000 (06:37 +0000)
git-svn-id: http://opkg.googlecode.com/svn/trunk@229 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358

libopkg/nv_pair_list.c
libopkg/opkg.c
libopkg/pkg_hash.c
libopkg/void_list.c

index fc4cd0f1c29352e5a6b99c7010393cf618706b9b..e98d7188a847e0aeb0085edbb2a5c6935168d21f 100644 (file)
@@ -41,7 +41,7 @@ void nv_pair_list_deinit(nv_pair_list_t *list)
        /* malloced in nv_pair_list_append */
        free(nv_pair);
        pos->data = NULL;
-        //free(pos);
+        free(pos);
     }
     void_list_deinit((void_list_t *) list);
 }
index c6a86eae225c0759c37c2376e58b4ff8a148739c..5ff0eb517de4b34b6ce8bd74bc18bb6f38326f81 100644 (file)
@@ -1089,7 +1089,6 @@ int opkg_repository_accessibility_check(opkg_t *opkg)
            ret++;
     }
     str_list_elt_deinit(iter1);
-    free(iter1);
   }
   free(src);
   return ret;
index 5b7e3dd678de0897a680a3e7f8134c03b9723a7e..dc9c3d0b788cb0b7a2f58d6b4259553b5e9bf7bb 100644 (file)
@@ -576,10 +576,6 @@ pkg_t *hash_insert_pkg(hash_table_t *hash, pkg_t *pkg, int set_status,opkg_conf_
      if(!ab_pkg->pkgs)
          ab_pkg->pkgs = pkg_vec_alloc();
     
-     /* pkg_vec_insert_merge might munge package, but it returns an unmunged pkg */
-     pkg = pkg_vec_insert_merge(ab_pkg->pkgs, pkg, set_status,conf );
-     pkg->parent = ab_pkg;
-
      if (buildProvides(hash, ab_pkg, pkg)<0){
         fprintf(stderr, "%s : This should never happen. Report this Bug in bugzilla please \n ",__FUNCTION__);
         return NULL;
@@ -595,6 +591,11 @@ pkg_t *hash_insert_pkg(hash_table_t *hash, pkg_t *pkg, int set_status,opkg_conf_
      }
     
      buildDependedUponBy(pkg, ab_pkg);
+
+     /* pkg_vec_insert_merge might munge package, but it returns an unmunged pkg */
+     pkg = pkg_vec_insert_merge(ab_pkg->pkgs, pkg, set_status,conf );
+     pkg->parent = ab_pkg;
+
      return pkg;
 }
 
index 676e3b1497d3b478dc4a8681f1dd4cdbdbfcaca5..1517228c16ce35a857a8a2d151fc3c0e3e0f17db 100644 (file)
@@ -30,7 +30,7 @@ int void_list_elt_init(void_list_elt_t *elt, void *data)
 
 void_list_elt_t * void_list_elt_new (void *data) {
     void_list_elt_t *elt;
-    /* freed in void_list_deinit */
+    /* freed in void_list_elt_deinit */
     elt = calloc(1, sizeof(void_list_elt_t));
     if (elt == NULL) {
        fprintf(stderr, "%s: out of memory\n", __FUNCTION__);
@@ -44,6 +44,7 @@ void void_list_elt_deinit(void_list_elt_t *elt)
 {
     list_del_init(&elt->node);
     void_list_elt_init(elt, NULL);
+    free(elt);
 }
 
 int void_list_init(void_list_t *list)
@@ -59,8 +60,6 @@ void void_list_deinit(void_list_t *list)
     while (!void_list_empty(list)) {
        elt = void_list_pop(list);
        void_list_elt_deinit(elt);
-       /* malloced in void_list_append */
-       free(elt);
     }
     INIT_LIST_HEAD(&list->head);
 }
@@ -116,7 +115,6 @@ void *void_list_remove(void_list_t *list, void_list_elt_t **iter)
 
     *iter = list_entry(pos->node.prev, void_list_elt_t, node);
     void_list_elt_deinit(pos);
-    free(pos);
 
     return old_data;
 }