summaryrefslogtreecommitdiff
path: root/program/lib/imap.inc
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2008-08-18 12:33:26 +0000
committerthomascube <thomas@roundcube.net>2008-08-18 12:33:26 +0000
commitfab43d2eb5c9d413a6fc097291a197094ed3dd99 (patch)
treed07e421ff15f5a2ded7576f5f1fc9679a672fe0c /program/lib/imap.inc
parente223df762ae099f0e48115aac257f97ead7deb13 (diff)
Better fix for bodystructure parsing (#1485280)
Diffstat (limited to 'program/lib/imap.inc')
-rw-r--r--program/lib/imap.inc4
1 files changed, 2 insertions, 2 deletions
diff --git a/program/lib/imap.inc b/program/lib/imap.inc
index 600b0d408..84d1b36b9 100644
--- a/program/lib/imap.inc
+++ b/program/lib/imap.inc
@@ -2576,11 +2576,11 @@ function iil_C_FetchStructureString(&$conn, $folder, $id) {
$line = iil_ReadLine($fp, 5000);
$line = iil_MultLine($fp, $line);
list(, $index, $cmd, $rest) = explode(' ', $line);
- if ($cmd != 'FETCH' || $index == $id)
+ if ($cmd != 'FETCH' || $index == $id || preg_match("/^$key/", $line))
$result .= $line;
} while (!preg_match("/^$key/", $line));
- $result = trim(substr($result, strpos($result, 'BODYSTRUCTURE')+13));
+ $result = trim(substr($result, strpos($result, 'BODYSTRUCTURE')+13, -(strlen($result)-strrpos($result, $key)+1)));
}
}
return $result;