[mpich2-commits] r5459 - mpich2/trunk/src/pm/hydra/pm/pmiserv

balaji at mcs.anl.gov balaji at mcs.anl.gov
Wed Oct 14 06:36:03 CDT 2009


Author: balaji
Date: 2009-10-14 06:36:03 -0500 (Wed, 14 Oct 2009)
New Revision: 5459

Modified:
   mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle.c
   mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle_v1.c
Log:
Fix some memory leaks.

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle.c	2009-10-14 11:36:00 UTC (rev 5458)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle.c	2009-10-14 11:36:03 UTC (rev 5459)
@@ -225,8 +225,8 @@
     char *tmp[HYD_NUM_TMP_STRINGS];
     struct HYD_Proxy *proxy;
     struct HYD_Proxy_segment *segment;
-    struct segment *seglist_head, *seglist_tail = NULL, *seg;
-    struct block *blocklist_head, *blocklist_tail = NULL, *block;
+    struct segment *seglist_head, *seglist_tail = NULL, *seg, *nseg;
+    struct block *blocklist_head, *blocklist_tail = NULL, *block, *nblock;
     int done;
     HYD_Status status = HYD_SUCCESS;
 
@@ -331,6 +331,15 @@
         HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "unrecognized process mapping\n");
     }
 
+    for (seg = seglist_head; seg; seg = nseg) {
+        nseg = seg->next;
+        HYDU_FREE(seg);
+    }
+    for (block = blocklist_head; block; block = nblock) {
+        nblock = block->next;
+        HYDU_FREE(block);
+    }
+
   fn_exit:
     HYDU_FUNC_EXIT();
     return status;

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle_v1.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle_v1.c	2009-10-14 11:36:00 UTC (rev 5458)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle_v1.c	2009-10-14 11:36:03 UTC (rev 5459)
@@ -343,6 +343,8 @@
             status = HYD_PMCD_pmi_add_kvs("process-mapping", node_list,
                                           process->node->pg->kvs, &ret);
             HYDU_ERR_POP(status, "unable to add process_mapping to KVS\n");
+
+            HYDU_FREE(node_list);
         }
 
         /* Search for the key again */



More information about the mpich2-commits mailing list