diff -up texinfo-6.5/contrib/fix-info-dir.orig texinfo-6.5/contrib/fix-info-dir --- texinfo-6.5/contrib/fix-info-dir.orig 2018-10-04 11:34:13.664483757 +0200 +++ texinfo-6.5/contrib/fix-info-dir 2018-10-04 11:34:13.666483758 +0200 @@ -28,7 +28,6 @@ if test -z "$LINENO"; then fi MENU_BEGIN='^\*\([ ]\)\{1,\}Menu:' -MENU_ITEM='^\* ([^ ]).*:([ ])+\(' MENU_FILTER1='s/^\*\([ ]\)\{1,\}/* /' MENU_FILTER2='s/\([ ]\)\{1,\}$//g' diff -up texinfo-6.5/info/echo-area.c.orig texinfo-6.5/info/echo-area.c --- texinfo-6.5/info/echo-area.c.orig 2017-02-04 02:02:43.000000000 +0100 +++ texinfo-6.5/info/echo-area.c 2018-10-04 11:34:13.667483758 +0200 @@ -979,6 +979,7 @@ info_read_completing_internal (const cha inform_in_echo_area (_("No completions")); else inform_in_echo_area (_("Not complete")); + free (line); continue; } } diff -up texinfo-6.5/info/info.c.orig texinfo-6.5/info/info.c --- texinfo-6.5/info/info.c.orig 2017-07-09 17:12:57.000000000 +0200 +++ texinfo-6.5/info/info.c 2018-10-04 11:34:13.667483758 +0200 @@ -295,6 +295,7 @@ get_initial_file (int *argc, char ***arg ref_index, ref_list, ref_slots, 2); initial_file = MANPAGE_FILE_BUFFER_NAME; + free (man_node); return; } } diff -up texinfo-6.5/info/infomap.c.orig texinfo-6.5/info/infomap.c --- texinfo-6.5/info/infomap.c.orig 2017-05-15 18:35:24.000000000 +0200 +++ texinfo-6.5/info/infomap.c 2018-10-04 11:34:13.667483758 +0200 @@ -603,6 +603,7 @@ fetch_user_maps (char *init_file) compile (inf, filename, &sup_info, &sup_ea); free (filename); + fclose (inf); return 1; } diff -up texinfo-6.5/info/makedoc.c.orig texinfo-6.5/info/makedoc.c --- texinfo-6.5/info/makedoc.c.orig 2014-11-07 11:58:55.000000000 +0100 +++ texinfo-6.5/info/makedoc.c 2018-10-04 11:34:13.667483758 +0200 @@ -427,7 +427,11 @@ process_one_file (char *filename, FILE * offset++; if (offset >= file_size) - break; + { + free (func_name); + free (func); + break; + } doc = xmalloc (1 + (offset - point)); strncpy (doc, buffer + point, offset - point); diff -up texinfo-6.5/info/m-x.c.orig texinfo-6.5/info/m-x.c --- texinfo-6.5/info/m-x.c.orig 2017-05-14 12:55:17.000000000 +0200 +++ texinfo-6.5/info/m-x.c 2018-10-04 11:34:13.667483758 +0200 @@ -81,7 +81,10 @@ DECLARE_INFO_COMMAND (describe_command, InfoCommand *cmd = named_function (line); if (!cmd) - return; + { + free (line); + return; + } window_message_in_echo_area ("%s: %s.", line, function_documentation (cmd)); diff -up texinfo-6.5/info/nodes.c.orig texinfo-6.5/info/nodes.c --- texinfo-6.5/info/nodes.c.orig 2017-07-09 20:51:40.000000000 +0200 +++ texinfo-6.5/info/nodes.c 2018-10-04 11:34:13.668483758 +0200 @@ -306,7 +306,10 @@ get_nodes_of_tags_table (FILE_BUFFER *fi for (p = 0; nodedef[p] && nodedef[p] != INFO_TAGSEP; p++) ; if (nodedef[p] != INFO_TAGSEP) - continue; + { + free (entry); + continue; + } entry->nodename = xmalloc (p + 1); strncpy (entry->nodename, nodedef, p); @@ -480,6 +483,7 @@ get_tags_of_indirect_tags_table (FILE_BU } file_buffer->subfiles = NULL; free_file_buffer_tags (file_buffer); + free (subfiles); return; } diff -up texinfo-6.5/info/session.c.orig texinfo-6.5/info/session.c --- texinfo-6.5/info/session.c.orig 2017-07-06 20:49:26.000000000 +0200 +++ texinfo-6.5/info/session.c 2018-10-04 11:34:13.668483758 +0200 @@ -3554,6 +3554,7 @@ DECLARE_INFO_COMMAND (info_goto_invocati if (!line) { info_abort_key (window, 0); + free (default_program_name); return; } if (*line) diff -up texinfo-6.5/info/variables.c.orig texinfo-6.5/info/variables.c --- texinfo-6.5/info/variables.c.orig 2017-05-03 21:48:19.000000000 +0200 +++ texinfo-6.5/info/variables.c 2018-10-04 11:34:13.669483758 +0200 @@ -361,6 +361,7 @@ read_variable_name (char *prompt, WINDOW { char *line; REFERENCE **variables; + VARIABLE_ALIST *alist; /* Get the completion array of variable names. */ variables = make_variable_completions_array (); @@ -384,7 +385,9 @@ read_variable_name (char *prompt, WINDOW return NULL; } - return variable_by_name (line); + alist = variable_by_name (line); + free (line); + return alist; } /* Make an array of REFERENCE which actually contains the names of the diff -up texinfo-6.5/install-info/install-info.c.orig texinfo-6.5/install-info/install-info.c --- texinfo-6.5/install-info/install-info.c.orig 2018-10-04 11:34:13.661483757 +0200 +++ texinfo-6.5/install-info/install-info.c 2018-10-04 11:34:13.669483758 +0200 @@ -867,10 +867,16 @@ determine_file_type: char *command = concat (*compression_program, " -d", ""); if (gzclose (f) < 0) - return 0; + { + free (command); + return 0; + } p = freopen (*opened_filename, FOPEN_RBIN, stdin); if (!p) - return 0; + { + free (command); + return 0; + } p = popen (command, "r"); if (!p) { @@ -880,6 +886,7 @@ determine_file_type: } else *is_pipe = 1; + free (command); return p; } else @@ -923,7 +930,10 @@ readfile (char *filename, int *sizep, &pipe_p); if (!f) - return 0; + { + free (data); + return 0; + } for (;;) { @@ -983,6 +993,7 @@ output_dirfile (char *dirfile, int dir_n { char *command = concat (compression_program, ">", dirfile_tmp); output = popen (command, "w"); + free (command); } else output = fopen (dirfile_tmp, "w"); @@ -1724,6 +1735,8 @@ reformat_new_entries (struct spec_entry format_entry (name, name_len, desc, desc_len, calign, align, maxwidth, &entry->text, &entry->text_len); + free (desc); + free (name); } }