Skip to content
Snippets Groups Projects
Commit ed3655c4 authored by Tom N Harris's avatar Tom N Harris
Browse files

Avoid zero-byte reads

darcs-hash:20090116001547-6942e-b5bc401c0ef4c36b1b7b8ca7ef708587953ec017.gz
parent 1e4a1d18
No related branches found
No related tags found
No related merge requests found
......@@ -333,9 +333,11 @@ class HTTPClient {
$byte = fread($socket,1); // readtrailing \n
$chunk_size = hexdec($chunk_size);
$this_chunk = fread($socket,$chunk_size);
$r_body .= $this_chunk;
if ($chunk_size) $byte = fread($socket,2); // read trailing \r\n
if ($chunk_size) {
$this_chunk = fread($socket,$chunk_size);
$r_body .= $this_chunk;
$byte = fread($socket,2); // read trailing \r\n
}
if($this->max_bodysize && strlen($r_body) > $this->max_bodysize){
$this->error = 'Allowed response size exceeded';
......
......@@ -995,7 +995,10 @@ class JpegMeta
$this->_markers[$count]['length'] = $length;
if ($capture) {
$this->_markers[$count]['data'] =& fread($this->_fp, $length);
if ($length)
$this->_markers[$count]['data'] =& fread($this->_fp, $length);
else
$this->_markers[$count]['data'] = "";
}
elseif (!$done) {
$result = @fseek($this->_fp, $length, SEEK_CUR);
......@@ -1213,12 +1216,12 @@ class JpegMeta
else {
if ($marker == 0xDA) { // Copy until EOF
while (!feof($this->_fp)) {
$data =& fread($this->_fp, 1024 * 16);
$data = fread($this->_fp, 1024 * 16);
fputs($this->_fpout, $data, strlen($data));
}
}
else { // Copy only $length bytes
$data =& fread($this->_fp, $length);
$data = @fread($this->_fp, $length);
fputs($this->_fpout, $data, $length);
}
}
......
......@@ -250,7 +250,7 @@ function getRevisionInfo($id, $rev, $chunk_size=8192) {
$got = 0;
fseek($fp, $head);
while ($got<$chunk_size && !feof($fp)) {
$tmp = fread($fp, max($chunk_size-$got, 0));
$tmp = @fread($fp, max($chunk_size-$got, 0));
if ($tmp===false) { break; } //error state
$got += strlen($tmp);
$chunk .= $tmp;
......@@ -335,7 +335,7 @@ function getRevisions($id, $first, $num, $chunk_size=8192) {
$read_size = max($tail-$finger, 0); // found chunk size
$got = 0;
while ($got<$read_size && !feof($fp)) {
$tmp = fread($fp, max($read_size-$got, 0));
$tmp = @fread($fp, max($read_size-$got, 0));
if ($tmp===false) { break; } //error state
$got += strlen($tmp);
$chunk .= $tmp;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment