[a2ps] Coverity fix (resource-leak).

Tim Waugh twaugh at fedoraproject.org
Wed Aug 10 16:03:38 UTC 2011


commit d3d4e266e71678c12d46710c52c720c3c5c58b98
Author: Tim Waugh <twaugh at redhat.com>
Date:   Wed Aug 10 16:48:11 2011 +0100

    Coverity fix (resource-leak).

 a2ps-resource-leak.patch |   49 ++++++++++++++++++++++++++++++++++++++++++++++
 a2ps.spec                |    5 ++++
 2 files changed, 54 insertions(+), 0 deletions(-)
---
diff --git a/a2ps-resource-leak.patch b/a2ps-resource-leak.patch
new file mode 100644
index 0000000..d84d0cd
--- /dev/null
+++ b/a2ps-resource-leak.patch
@@ -0,0 +1,49 @@
+diff -up a2ps-4.14/lib/encoding.c.resource-leak a2ps-4.14/lib/encoding.c
+--- a2ps-4.14/lib/encoding.c.resource-leak	2011-08-10 16:02:26.244905923 +0100
++++ a2ps-4.14/lib/encoding.c	2011-08-10 16:41:39.578353192 +0100
+@@ -554,7 +554,7 @@ encoding_resolve_font_substitute (struct
+   if (!res)
+     {
+       if (encoding->default_font)
+-	res = encoding->default_font;
++	res = xstrdup (encoding->default_font);
+       else
+ 	error (1, 0, "Cannot find font %s, nor any substitute",
+ 	       font_name);
+@@ -976,6 +976,7 @@ dump_encoding_setup (FILE * stream,
+ 							 font_names [i]);
+       if (!font_is_to_reencode (job, real_font_name))
+ 	da_remove_at (encoding->font_names_used, i, (da_map_func_t) free);
++      free (real_font_name);
+     }
+ 
+   /* The number of fonts that, finally, have to be encoded
+@@ -992,10 +993,16 @@ dump_encoding_setup (FILE * stream,
+   fprintf (stream, "/%sdict %d dict begin\n", encoding->key,
+ 	   (encoding->composite_flag == true)? nb+nb+ns:nb+ns);
+   for (i = 0 ; i < nb ; i++)
+-    fprintf (stream, "  /f%s %sEncoding /%s reencode_font\n",
+-	     font_names [i],
+-	     encoding->name,
+-	     encoding_resolve_font_substitute (job, encoding, font_names [i]));
++    {
++      char *real_font = encoding_resolve_font_substitute (job, encoding,
++							  font_names [i]);
++      fprintf (stream, "  /f%s %sEncoding /%s reencode_font\n",
++	       font_names [i],
++	       encoding->name,
++	       real_font);
++      free (real_font);
++    }
++	     
+ 
+   /* Slant font setting */
+   for (i = 0 ; encoding->slantfont[i].name ; i++ )
+@@ -1166,6 +1173,7 @@ encoding_build_faces_wx (a2ps_job * job,
+ 				   encoding->vector,
+ 				   encoding->faces_wx [face]);
+ 
++      free (true_font_name);
+       if (encoding->composite_flag)
+ 	{
+ 	  encoding->composite_raito[i] =
diff --git a/a2ps.spec b/a2ps.spec
index 2b0896b..947a345 100644
--- a/a2ps.spec
+++ b/a2ps.spec
@@ -32,6 +32,7 @@ Patch35: a2ps-4.14-texinfo-nodes.patch
 Patch36: a2ps-forward-null.patch
 Patch37: a2ps-overrun-dynamic.patch
 Patch38: a2ps-overrun-static.patch
+Patch39: a2ps-resource-leak.patch
 Requires: fileutils sh-utils info
 BuildRequires: gperf
 BuildRequires: emacs, flex, libtool, texinfo, groff
@@ -151,6 +152,9 @@ the emacs-%{name} package to use emacs-%{name} with GNU Emacs.
 # Coverity fix (overrun-static).
 %patch38 -p1 -b .overrun-static
 
+# Coverity fix (resource-leak).
+%patch39 -p1 -b .resource-leak
+
 for file in AUTHORS ChangeLog; do
   iconv -f latin1 -t UTF-8 < $file > $file.utf8
   touch -c -r $file $file.utf8
@@ -291,6 +295,7 @@ exit 0
 
 %changelog
 * Wed Aug 10 2011 Tim Waugh <twaugh at redhat.com> - 4.14-13
+- Coverity fix (resource-leak).
 - Coverity fix (overrun-static).
 - Coverity fix (overrun-dynamic).
 - Coverity fix (forward-null).


More information about the scm-commits mailing list