rpms/cups/F-12 cups-str3382.patch,NONE,1.1 cups.spec,1.527,1.528

Jiří Popelka jpopelka at fedoraproject.org
Tue Oct 20 13:43:45 UTC 2009


Author: jpopelka

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

Modified Files:
	cups.spec 
Added Files:
	cups-str3382.patch 
Log Message:
* Tue Oct 20 2009 Jiri Popelka <jpopelka at redhat.com> 1:1.4.1-11
- Fix cups-lpd to create unique temporary data files (bug #529838).


cups-str3382.patch:
 tempfile.c |   31 ++++++++++++-------------------
 1 file changed, 12 insertions(+), 19 deletions(-)

--- NEW FILE cups-str3382.patch ---
diff -up cups-1.4.1/cups/tempfile.c.str3382 cups-1.4.1/cups/tempfile.c
--- cups-1.4.1/cups/tempfile.c.str3382	2008-12-10 06:03:11.000000000 +0100
+++ cups-1.4.1/cups/tempfile.c	2009-10-20 15:08:39.000000000 +0200
@@ -35,6 +35,7 @@
 #  include <io.h>
 #else
 #  include <unistd.h>
+#  include <sys/types.h>
 #endif /* WIN32 || __EMX__ */
 
 
@@ -56,7 +57,7 @@ cupsTempFd(char *filename,		/* I - Point
   char		tmppath[1024];		/* Windows temporary directory */
   DWORD		curtime;		/* Current time */
 #else
-  struct timeval curtime;		/* Current time */
+  mode_t	old_umask;		/* Old umask before using mkstemp() */
 #endif /* WIN32 */
 
 
@@ -107,33 +108,25 @@ cupsTempFd(char *filename,		/* I - Point
 
     snprintf(filename, len - 1, "%s/%05lx%08lx", tmpdir,
              GetCurrentProcessId(), curtime);
-#else
-   /*
-    * Get the current time of day...
-    */
-
-    gettimeofday(&curtime, NULL);
-
-   /*
-    * Format a string using the hex time values...
-    */
-
-    snprintf(filename, len - 1, "%s/%08lx%05lx", tmpdir,
-             (unsigned long)curtime.tv_sec, (unsigned long)curtime.tv_usec);
-#endif /* WIN32 */
 
    /*
     * Open the file in "exclusive" mode, making sure that we don't
     * stomp on an existing file or someone's symlink crack...
     */
 
-#ifdef WIN32
     fd = open(filename, _O_CREAT | _O_RDWR | _O_TRUNC | _O_BINARY,
               _S_IREAD | _S_IWRITE);
-#elif defined(O_NOFOLLOW)
-    fd = open(filename, O_RDWR | O_CREAT | O_EXCL | O_NOFOLLOW, 0600);
 #else
-    fd = open(filename, O_RDWR | O_CREAT | O_EXCL, 0600);
+
+   /*
+    * Use the standard mkstemp() call to make a temporary filename
+    * securely.  -- andrew.wood at jdplc.com
+    */
+    snprintf(filename, len - 1, "%s/cupsXXXXXX", tmpdir);
+
+    old_umask = umask(0077);
+    fd = mkstemp(filename);
+    umask(old_umask);
 #endif /* WIN32 */
 
     if (fd < 0 && errno != EEXIST)


Index: cups.spec
===================================================================
RCS file: /cvs/pkgs/rpms/cups/F-12/cups.spec,v
retrieving revision 1.527
retrieving revision 1.528
diff -u -p -r1.527 -r1.528
--- cups.spec	19 Oct 2009 11:32:51 -0000	1.527
+++ cups.spec	20 Oct 2009 13:43:45 -0000	1.528
@@ -9,7 +9,7 @@
 Summary: Common Unix Printing System
 Name: cups
 Version: 1.4.1
-Release: 10%{?dist}
+Release: 11%{?dist}
 License: GPLv2
 Group: System Environment/Daemons
 Source: http://ftp.easysw.com/pub/cups/1.4.0/cups-%{version}-source.tar.bz2
@@ -56,6 +56,7 @@ Patch35: cups-cups-get-classes.patch
 Patch37: cups-avahi.patch
 Patch38: cups-str3332.patch
 Patch39: cups-str3356.patch
+Patch40: cups-str3382.patch
 Patch100: cups-lspp.patch
 Epoch: 1
 Url: http://www.cups.org/
@@ -216,6 +217,7 @@ gzip -n postscript.ppd
 %patch37 -p1 -b .avahi
 %patch38 -p1 -b .str3332
 %patch39 -p1 -b .str3356
+%patch40 -p1 -b .str3382
 
 %if %lspp
 %patch100 -p1 -b .lspp
@@ -516,6 +518,9 @@ rm -rf $RPM_BUILD_ROOT
 %{php_extdir}/phpcups.so
 
 %changelog
+* Tue Oct 20 2009 Jiri Popelka <jpopelka at redhat.com> 1:1.4.1-11
+- Fix cups-lpd to create unique temporary data files (bug #529838).
+
 * Mon Oct 19 2009 Tim Waugh <twaugh at redhat.com> 1:1.4.1-10
 - Fixed German translation (bug #529575, STR #3380).
 




More information about the scm-commits mailing list