Don't try to match invalid expressions, so things like 'dump_portguid *'
will not crash.

Free memory allocated by regcomp() and for regexp list.

Signed-off-by: Sasha Khapyorsky <sas...@voltaire.com>
---
 opensm/opensm/osm_console.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/opensm/opensm/osm_console.c b/opensm/opensm/osm_console.c
index a66a7d3..0f26e51 100644
--- a/opensm/opensm/osm_console.c
+++ b/opensm/opensm/osm_console.c
@@ -1247,6 +1247,8 @@ static void dump_portguid_parse(char **p_last, 
osm_opensm_t * p_osm, FILE * out)
                                        fprintf(out,
                                                "Couldn't parse regular 
expression %s. Skipping it.\n",
                                                p_cmd);
+                                       free(p_regexp);
+                                       continue;
                                }
                                p_regexp->next = p_head_regexp;
                                p_head_regexp = p_regexp;
@@ -1292,6 +1294,11 @@ static void dump_portguid_parse(char **p_last, 
osm_opensm_t * p_osm, FILE * out)
        if (output != out)
                fclose(output);
 
+       for (; p_head_regexp; p_head_regexp = p_regexp) {
+               p_regexp = p_head_regexp->next;
+               regfree(&p_head_regexp->exp);
+               free(p_head_regexp);
+       }
 }
 
 static void help_dump_portguid(FILE * out, int detail)
-- 
1.6.1.2.319.gbd9e

_______________________________________________
general mailing list
general@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to