Blame SOURCES/texinfo-6.5-covscan-fixes.patch

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