From 35b01b64f5cc9fe59d67f4f5abf01087d5221c13 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 03 Dec 2009 05:59:38 -0500
Subject: [PATCH] - added feof() checks before fgets/fread
---
program/lib/imap.inc | 16 ++++++++++++----
1 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/program/lib/imap.inc b/program/lib/imap.inc
index 964d12d..409c262 100644
--- a/program/lib/imap.inc
+++ b/program/lib/imap.inc
@@ -234,7 +234,7 @@
$line = '';
if (!$fp) {
- return $line;
+ return NULL;
}
if (!$size) {
@@ -242,6 +242,10 @@
}
do {
+ if (feof($fp)) {
+ return $line ? $line : NULL;
+ }
+
$buffer = fgets($fp, $size);
if ($buffer === false) {
@@ -264,6 +268,8 @@
$bytes = $a[2][0];
while (strlen($out) < $bytes) {
$line = iil_ReadBytes($fp, $bytes);
+ if ($line === NULL)
+ break;
$out .= $line;
}
@@ -276,7 +282,8 @@
global $my_prefs;
$data = '';
$len = 0;
- do {
+ while ($len < $bytes && !feof($fp))
+ {
$d = fread($fp, $bytes-$len);
if (!empty($my_prefs['debug_mode']))
write_log('imap', 'S: '. $d);
@@ -286,7 +293,7 @@
break; //nothing was read -> exit to avoid apache lockups
}
$len = $data_len;
- } while ($len < $bytes);
+ };
return $data;
}
@@ -716,7 +723,8 @@
function iil_Close(&$conn) {
if (iil_PutLine($conn->fp, "I LOGOUT")) {
- fgets($conn->fp, 1024);
+ if (!feof($conn->fp))
+ fgets($conn->fp, 1024);
fclose($conn->fp);
$conn->fp = false;
}
--
Gitblit v1.9.1