<div dir="ltr"><div>Applied.<br></div>Thanks.<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jun 30, 2014 at 7:13 AM, Benjamin Marzinski <span dir="ltr"><<a href="mailto:bmarzins@redhat.com" target="_blank">bmarzins@redhat.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">There were some possible NULL pointer dereferences and multiple frees<br>
in the failure code paths of the path reordering code.  This patch<br>
cleans them up.<br>
<br>
Signed-off-by: Benjamin Marzinski <<a href="mailto:bmarzins@redhat.com">bmarzins@redhat.com</a>><br>
---<br>
 libmultipath/configure.c | 10 +++++++++-<br>
 1 file changed, 9 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/libmultipath/configure.c b/libmultipath/configure.c<br>
index 3ed6b55..6ad7a80 100644<br>
--- a/libmultipath/configure.c<br>
+++ b/libmultipath/configure.c<br>
@@ -160,8 +160,16 @@ int order_paths_in_pg_by_alt_adapters(struct pathgroup *pgp, vector adapters,<br>
<br>
        while (total_paths > 0) {<br>
                agp = VECTOR_SLOT(adapters, next_adapter_index);<br>
+               if (!agp) {<br>
+                       condlog(0, "can't get adapter group %d", next_adapter_index);<br>
+                       return 1;<br>
+               }<br>
<br>
                hgp = VECTOR_SLOT(agp->host_groups, agp->next_host_index);<br>
+               if (!hgp) {<br>
+                       condlog(0, "can't get host group %d of adapter group %d", next_adapter_index, agp->next_host_index);<br>
+                       return 1;<br>
+               }<br>
<br>
                if (!hgp->num_paths) {<br>
                        agp->next_host_index++;<br>
@@ -223,8 +231,8 @@ int rr_optimize_path_order(struct pathgroup *pgp)<br>
        /* group paths in path group by host adapters<br>
         */<br>
        if (group_by_host_adapter(pgp, adapters)) {<br>
+               /* already freed adapters */<br>
                condlog(3, "Failed to group paths by adapters");<br>
-               free_adaptergroup(adapters);<br>
                return 0;<br>
        }<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
1.8.3.1<br>
<br>
</font></span></blockquote></div><br></div>