diff -up texinfo-6.4/info/search.c.orig texinfo-6.4/info/search.c
--- texinfo-6.4/info/search.c.orig 2017-04-17 09:39:56.000000000 +0200
+++ texinfo-6.4/info/search.c 2017-12-04 11:31:09.180059724 +0100
@@ -201,6 +201,7 @@ regexp_search (char *regexp, int is_lite
char *buf = xmalloc (size);
regerror (result, &preg, buf, size);
info_error (_("regexp error: %s"), buf);
+ free (buf);
return search_invalid;
}
@@ -215,7 +216,10 @@ regexp_search (char *regexp, int is_lite
extend_matches (match_state);
if (match_state->match_count == 0)
- return search_not_found;
+ {
+ free_matches (match_state);
+ return search_not_found;
+ }
else
return search_success;
}
diff -up texinfo-6.4/info/session.c.orig texinfo-6.4/info/session.c
--- texinfo-6.4/info/session.c.orig 2017-12-04 11:31:15.023062714 +0100
+++ texinfo-6.4/info/session.c 2017-12-04 11:31:41.870076452 +0100
@@ -3953,10 +3953,7 @@ info_search_in_node_internal (WINDOW *wi
}
if (result != search_success)
- {
- free_matches (&matches);
return result;
- }
if (node->flags & N_Simple)
{