rpms/netpbm/F-12 netpbm-pnmsmooth-segfault.patch, NONE, 1.1 netpbm.spec, 1.147, 1.148

Jindrich Novy jnovy at fedoraproject.org
Tue Dec 8 09:24:03 UTC 2009


Author: jnovy

Update of /cvs/pkgs/rpms/netpbm/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv20407

Modified Files:
	netpbm.spec 
Added Files:
	netpbm-pnmsmooth-segfault.patch 
Log Message:
* Mon Dec  7 2009 Jindrich Novy <jnovy at redhat.com> 10.47.04-3
- fix segfault in pnmsmooth (#545089)


netpbm-pnmsmooth-segfault.patch:
 pnmsmooth.c |   37 ++++++++++++++++++++++++++++++++++---
 1 file changed, 34 insertions(+), 3 deletions(-)

--- NEW FILE netpbm-pnmsmooth-segfault.patch ---
diff -up netpbm-10.47.04/editor/pnmsmooth.c.pnmsmooth-segfault netpbm-10.47.04/editor/pnmsmooth.c
--- netpbm-10.47.04/editor/pnmsmooth.c.pnmsmooth-segfault	2009-10-21 13:38:57.000000000 +0200
+++ netpbm-10.47.04/editor/pnmsmooth.c	2009-03-23 07:55:01.000000000 +0100
@@ -23,12 +23,12 @@
 #include <unistd.h>
 #include <string.h>
 #include <errno.h>
+#include <sys/wait.h>
 
 #include "pm_c_util.h"
 #include "mallocvar.h"
 #include "shhopt.h"
 #include "nstring.h"
-#include "pm_system.h"
 #include "pnm.h"
 
 
@@ -176,6 +176,38 @@ writeConvolutionImage(FILE *       const
 
 
 
+static void
+runPnmconvol(const char * const inputFilespec,
+             const char * const convolutionImageFilespec) {
+
+    /* fork a Pnmconvol process */
+    pid_t rc;
+
+    rc = fork();
+    if (rc < 0)
+        pm_error("fork() failed.  errno=%d (%s)", errno, strerror(errno));
+    else if (rc == 0) {
+        /* child process executes following code */
+
+        execlp("pnmconvol",
+               "pnmconvol", convolutionImageFilespec, inputFilespec,
+               NULL);
+
+        pm_error("error executing pnmconvol command.  errno=%d (%s)",
+                 errno, strerror(errno));
+    } else {
+        /* This is the parent */
+        pid_t const childPid = rc;
+
+        int status;
+
+        /* wait for child to finish */
+        while (wait(&status) != childPid);
+    }
+}
+
+
+
 int
 main(int argc, char ** argv) {
 
@@ -200,8 +232,7 @@ main(int argc, char ** argv) {
     if (cmdline.dump) {
         /* We're done.  Convolution image is in user's file */
     } else {
-        pm_system_lp("pnmconvol", NULL, NULL, NULL, NULL,
-                     tempfileName, cmdline.inputFilespec, NULL);
+        runPnmconvol(cmdline.inputFilespec, tempfileName);
 
         unlink(tempfileName);
         strfree(tempfileName);


Index: netpbm.spec
===================================================================
RCS file: /cvs/pkgs/rpms/netpbm/F-12/netpbm.spec,v
retrieving revision 1.147
retrieving revision 1.148
diff -u -p -r1.147 -r1.148
--- netpbm.spec	27 Nov 2009 06:03:19 -0000	1.147
+++ netpbm.spec	8 Dec 2009 09:24:03 -0000	1.148
@@ -1,7 +1,7 @@
 Summary: A library for handling different graphics file formats
 Name: netpbm
 Version: 10.47.04
-Release: 2%{?dist}
+Release: 3%{?dist}
 # See copyright_summary for details
 License: BSD and GPLv2 and IJG and MIT and Public Domain
 Group: System Environment/Libraries
@@ -27,6 +27,7 @@ Patch13: netpbm-glibc.patch
 Patch14: netpbm-pnmtofiasco-stdin.patch
 Patch15: netpbm-svgtopam.patch
 Patch16: netpbm-ppmpat-segfault.patch
+Patch17: netpbm-pnmsmooth-segfault.patch
 Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires: libjpeg-devel, libpng-devel, libtiff-devel, flex
 BuildRequires: libX11-devel, python, jasper-devel
@@ -84,6 +85,7 @@ netpbm-progs.  You'll also need to insta
 %patch14 -p1 -b .pnmtofiasco-stdin
 %patch15 -p1 -b .svgtopam
 %patch16 -p1 -b .ppmpat-segfault
+%patch17 -p1 -b .pnmsmooth-segfault
 
 sed -i 's/STRIPFLAG = -s/STRIPFLAG =/g' config.mk.in
 
@@ -212,6 +214,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_datadir}/netpbm/
 
 %changelog
+* Mon Dec  7 2009 Jindrich Novy <jnovy at redhat.com> 10.47.04-3
+- fix segfault in pnmsmooth (#545089)
+
 * Fri Nov 27 2009 Jindrich Novy <jnovy at redhat.com> 10.47.04-2
 - fix ppmpat segfault when using -camo option (#541568)
 




More information about the scm-commits mailing list