Regression in zendframework

2015-06-22 Thread Евгений Смолин

Hi.
It seems that Zend Http Client is broken after security update from 
zendframework-1.10.6-1squeeze2 to  zendframework-1.10.6-1squeeze3
How to reproduce:

setUri('https://www.debian.org/Bugs/');
$response = $httpClient->request('POST');
var_dump($response);


php zf-test.php will output:

PHP Fatal error:  Uncaught exception 'Zend_Http_Exception' with message 
'Invalid header line detected' in /usr/share/php/Zend/Http/Response.php:558
Stack trace:
#0 /usr/share/php/Zend/Http/Client/Adapter/Socket.php(338): 
Zend_Http_Response::extractHeaders('HTTP/1.1 200 OK...')
#1 /usr/share/php/Zend/Http/Client.php(1000): 
Zend_Http_Client_Adapter_Socket->read()
#2 /home/eug/www/drafts/zend/debian-test.php(6): 
Zend_Http_Client->request('POST')
#3 {main}
  thrown in /usr/share/php/Zend/Http/Response.php on line 558

My version of patch:

--- /usr/share/php/Zend/Http/Response.php.orig    2015-06-20 14:53:50.0 
+0300
+++ /usr/share/php/Zend/Http/Response.php    2015-06-22 17:38:39.181180176 +0300
@@ -508,10 +508,14 @@
 unset($parts);
 $last_header = null;
 
-    foreach($lines as $line) {
+    foreach($lines as $index => $line) {
 $line = trim($line, "\r\n");
 if ($line == "") break;
 
+    if (($index == 0) && (preg_match("|^HTTP/[\d\.x]+ \d+ 
([^\r\n]+)|", $response_str, $m))) {
+    continue;
+    }
+
 if (preg_match("|^([\w-]+):\s+(.+)|", $line, $m)) {
 unset($last_header);
 $h_name = strtolower($m[1]);

Best regargs,
Evgeny Smolin


Re: Regression in zendframework

2015-06-22 Thread Santiago Ruano Rincón
El 22/06/15 a las 18:14, Евгений Смолин escribió:
> Hi.
> 
> It seems that Zend Http Client is broken after security update from
> zendframework-1.10.6-1squeeze2 to  zendframework-1.10.6-1squeeze3
> 

Hi,

Thanks for your report and patch. I'll upload a new version of
zendframework.

Best regards,

Santiago


signature.asc
Description: Digital signature