rpms/cups/devel cups-str2892.patch,NONE,1.1 cups.spec,1.431,1.432

Tim Waugh (twaugh) fedora-extras-commits at redhat.com
Sun Aug 3 13:31:38 UTC 2008


Author: twaugh

Update of /cvs/pkgs/rpms/cups/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv31077

Modified Files:
	cups.spec 
Added Files:
	cups-str2892.patch 
Log Message:
* Sun Aug  3 2008 Tim Waugh <twaugh at redhat.com> 1:1.3.8-2
- Applied patch to fix STR #2892 (bug #453610).


cups-str2892.patch:

--- NEW FILE cups-str2892.patch ---
diff -up cups-1.3.8/scheduler/client.c.str2892 cups-1.3.8/scheduler/client.c
--- cups-1.3.8/scheduler/client.c.str2892	2008-07-11 23:48:49.000000000 +0100
+++ cups-1.3.8/scheduler/client.c	2008-08-03 11:42:35.000000000 +0100
@@ -28,6 +28,7 @@
  *   cupsdUpdateCGI()        - Read status messages from CGI scripts and programs.
  *   cupsdWriteClient()      - Write data to a client as needed.
  *   check_if_modified()     - Decode an "If-Modified-Since" line.
+ *   data_ready()            - Check whether data is available from a client.
  *   encrypt_client()        - Enable encryption for the client...
  *   get_cdsa_certificate()  - Convert a keychain name into the CFArrayRef
  *			       required by SSLSetCertificate.
@@ -83,6 +84,7 @@ extern const char *cssmErrorString(int e
 
 static int		check_if_modified(cupsd_client_t *con,
 			                  struct stat *filestats);
+static int		data_ready(cupsd_client_t *con);
 #ifdef HAVE_SSL
 static int		encrypt_client(cupsd_client_t *con);
 #endif /* HAVE_SSL */
@@ -989,8 +991,7 @@ cupsdReadClient(cupsd_client_t *con)	/* 
 	*/
 
         while ((status = httpUpdate(HTTP(con))) == HTTP_CONTINUE)
-	  if (con->http.used == 0 ||
-	      !memchr(con->http.buffer, '\n', con->http.used))
+	  if (!data_ready(con))
 	    break;
 
 	if (status != HTTP_OK && status != HTTP_CONTINUE)
@@ -1889,7 +1890,7 @@ cupsdReadClient(cupsd_client_t *con)	/* 
 	    }
 	  }
         }
-	while (con->http.state == HTTP_PUT_RECV && con->http.used > 0);
+	while (con->http.state == HTTP_PUT_RECV && data_ready(con));
 
         if (con->http.state == HTTP_WAITING)
 	{
@@ -2064,7 +2065,7 @@ cupsdReadClient(cupsd_client_t *con)	/* 
 	    }
 	  }
         }
-	while (con->http.state == HTTP_POST_RECV && con->http.used > 0);
+	while (con->http.state == HTTP_POST_RECV && data_ready(con));
 
 	if (con->http.state == HTTP_POST_SEND)
 	{
@@ -2914,6 +2915,38 @@ check_if_modified(
 }
 
 
+/*
+ * 'data_ready()' - Check whether data is available from a client.
+ */
+
+static int				/* O - 1 if data is ready, 0 otherwise */
+data_ready(cupsd_client_t *con)		/* I - Client */
+{
+  if (con->http.used > 0)
+    return (1);
+#ifdef HAVE_SSL
+  else if (con->http.tls)
+  {
+#  ifdef HAVE_LIBSSL
+    if (SSL_pending((SSL *)(con->http.tls)))
+      return (1);
+#  elif defined(HAVE_GNUTLS)
+    if (gnutls_record_check_pending(((http_tls_t *)(con->http.tls))->session))
+      return (1);
+#  elif defined(HAVE_CDSASSL)
+    size_t bytes;			/* Bytes that are available */
+
+    if (!SSLGetBufferedReadSize(((http_tls_t *)(con->http.tls))->session,
+                                &bytes) && bytes > 0)
+      return (1);
+#  endif /* HAVE_LIBSSL */
+  }
+#endif /* HAVE_SSL */
+
+  return (0);
+}
+
+
 #ifdef HAVE_SSL
 /*
  * 'encrypt_client()' - Enable encryption for the client...


Index: cups.spec
===================================================================
RCS file: /cvs/pkgs/rpms/cups/devel/cups.spec,v
retrieving revision 1.431
retrieving revision 1.432
diff -u -r1.431 -r1.432
--- cups.spec	28 Jul 2008 16:47:05 -0000	1.431
+++ cups.spec	3 Aug 2008 13:31:08 -0000	1.432
@@ -7,7 +7,7 @@
 Summary: Common Unix Printing System
 Name: cups
 Version: 1.3.8
-Release: 1%{?svn:.svn%{svn}}%{?dist}
+Release: 2%{?svn:.svn%{svn}}%{?dist}
 License: GPLv2
 Group: System Environment/Daemons
 Source: ftp://ftp.easysw.com/pub/cups/test//cups-%{version}%{?svn:svn-r%{svn}}-source.tar.bz2
@@ -47,6 +47,7 @@
 Patch20: cups-logrotate.patch
 Patch21: cups-usb-paperout.patch
 Patch22: cups-getnameddest.patch
+Patch23: cups-str2892.patch
 Patch100: cups-lspp.patch
 Epoch: 1
 Url: http://www.cups.org/
@@ -168,6 +169,7 @@
 %patch20 -p1 -b .logrotate
 %patch21 -p1 -b .usb-paperout
 %patch22 -p1 -b .getnameddest
+%patch23 -p1 -b .str2892
 
 %if %lspp
 %patch100 -p1 -b .lspp
@@ -442,6 +444,9 @@
 %{cups_serverbin}/daemon/cups-lpd
 
 %changelog
+* Sun Aug  3 2008 Tim Waugh <twaugh at redhat.com> 1:1.3.8-2
+- Applied patch to fix STR #2892 (bug #453610).
+
 * Mon Jul 28 2008 Tim Waugh <twaugh at redhat.com> 1:1.3.8-1
 - 1.3.8.
 




More information about the fedora-extras-commits mailing list