diff -up texinfo-6.5.91/contrib/fix-info-dir.p7 texinfo-6.5.91/contrib/fix-info-dir --- texinfo-6.5.91/contrib/fix-info-dir.p7 2019-01-21 10:52:18.453973008 +0100 +++ texinfo-6.5.91/contrib/fix-info-dir 2019-01-21 10:52:18.456973012 +0100 @@ -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.91/info/infomap.c.p7 texinfo-6.5.91/info/infomap.c --- texinfo-6.5.91/info/infomap.c.p7 2019-01-13 12:43:10.000000000 +0100 +++ texinfo-6.5.91/info/infomap.c 2019-01-21 10:52:18.457973013 +0100 @@ -589,6 +589,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.91/info/makedoc.c.p7 texinfo-6.5.91/info/makedoc.c --- texinfo-6.5.91/info/makedoc.c.p7 2019-01-13 12:43:10.000000000 +0100 +++ texinfo-6.5.91/info/makedoc.c 2019-01-21 10:52:18.457973013 +0100 @@ -425,7 +425,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.91/info/m-x.c.p7 texinfo-6.5.91/info/m-x.c --- texinfo-6.5.91/info/m-x.c.p7 2019-01-13 12:43:10.000000000 +0100 +++ texinfo-6.5.91/info/m-x.c 2019-01-21 10:52:18.457973013 +0100 @@ -79,7 +79,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.91/info/nodes.c.p7 texinfo-6.5.91/info/nodes.c --- texinfo-6.5.91/info/nodes.c.p7 2019-01-13 12:43:10.000000000 +0100 +++ texinfo-6.5.91/info/nodes.c 2019-01-21 10:52:18.457973013 +0100 @@ -303,7 +303,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); @@ -477,6 +480,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.91/info/session.c.p7 texinfo-6.5.91/info/session.c --- texinfo-6.5.91/info/session.c.p7 2019-01-13 12:43:10.000000000 +0100 +++ texinfo-6.5.91/info/session.c 2019-01-21 10:52:18.458973014 +0100 @@ -3552,6 +3552,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.91/info/variables.c.p7 texinfo-6.5.91/info/variables.c --- texinfo-6.5.91/info/variables.c.p7 2019-01-13 12:43:10.000000000 +0100 +++ texinfo-6.5.91/info/variables.c 2019-01-21 10:52:18.459973015 +0100 @@ -359,6 +359,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 (); @@ -382,7 +383,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.91/install-info/install-info.c.p7 texinfo-6.5.91/install-info/install-info.c --- texinfo-6.5.91/install-info/install-info.c.p7 2019-01-21 10:52:18.447973002 +0100 +++ texinfo-6.5.91/install-info/install-info.c 2019-01-21 10:52:18.460973016 +0100 @@ -864,10 +864,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) { @@ -877,6 +883,7 @@ determine_file_type: } else *is_pipe = 1; + free (command); return p; } else @@ -920,7 +927,10 @@ readfile (char *filename, int *sizep, &pipe_p); if (!f) - return 0; + { + free (data); + return 0; + } for (;;) { @@ -980,6 +990,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"); @@ -1721,6 +1732,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); } }