Sophie

Sophie

distrib > Mageia > 1 > i586 > media > core-updates-src > by-pkgid > e2a891db83b39c3d4817ae3cf8ba93f9 > files > 4

libproxy-0.4.6-8.1.mga1.src.rpm

--- libproxy/url.cpp~	2011-06-06 17:44:37.216019447 -0400
+++ libproxy/url.cpp	2012-10-23 11:00:30.517614575 -0400
@@ -457,7 +457,7 @@
 		// Get content
 		unsigned int recvd = 0;
 		buffer = new char[PAC_MAX_SIZE];
-		*buffer = '\0';
+		memset(buffer, 0, PAC_MAX_SIZE);
 		do {
 			unsigned int chunk_length;
 
@@ -471,15 +471,18 @@
 				// Add this chunk to our content length,
 				// ensuring that we aren't over our max size
 				content_length += chunk_length;
-				if (content_length >= PAC_MAX_SIZE) break;
 			}
 
+			if (content_length >= PAC_MAX_SIZE) break;
+
 			while (recvd != content_length) {
 				int r = recv(sock, buffer + recvd, content_length - recvd, 0);
-				if (r < 0) break;
+				if (r <= 0) {
+					chunked = false;
+					break;
+				}
 				recvd += r;
 			}
-			buffer[content_length] = '\0';
 		} while (chunked);
 
 		if (string(buffer).size() != content_length) {