summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHakan Sandell <hakan.sandell@home.se>2010-10-02 17:06:59 +0200
committerAndreas Gohr <andi@splitbrain.org>2010-10-02 17:40:27 +0200
commit92eec8e87a5bb7403eb3128cfb87c26a5d1bbb37 (patch)
tree4f6e6ea766134cbea05bdf7ac36c3d5bd83ea76d
parent156dbd62fa3d65e4ee1f4a97e77e7705edefb03b (diff)
downloadrpg-92eec8e87a5bb7403eb3128cfb87c26a5d1bbb37.tar.gz
rpg-92eec8e87a5bb7403eb3128cfb87c26a5d1bbb37.tar.bz2
Fixed bug FS2030 JpegMeta dies on parsing XMP
-rw-r--r--inc/JpegMeta.php14
1 files changed, 9 insertions, 5 deletions
diff --git a/inc/JpegMeta.php b/inc/JpegMeta.php
index 98453131e..fa05f6859 100644
--- a/inc/JpegMeta.php
+++ b/inc/JpegMeta.php
@@ -1488,6 +1488,8 @@ class JpegMeta {
* @author Hakan Sandell <hakan.sandell@mydata.se>
*/
function _parseXmpNode($values, &$i, &$meta) {
+ if ($values[$i]['type'] == 'close') return;
+
if ($values[$i]['type'] == 'complete') {
// Simple Type property
$meta = $values[$i]['value'];
@@ -1501,14 +1503,16 @@ class JpegMeta {
while ($values[++$i]['tag'] == 'rdf:li') {
$this->_parseXmpNode($values, $i, $meta[]);
}
- $i++; // skip closing tag
+ $i++; // skip closing Bag/Seq tag
} elseif ($values[$i]['tag'] == 'rdf:Alt') {
// Language Alternative property, only the first (default) value is used
- $i++;
- $this->_parseXmpNode($values, $i, $meta);
- while ($values[++$i]['tag'] != 'rdf:Alt');
- $i++; // skip closing tag
+ if ($values[$i]['type'] == 'open') {
+ $i++;
+ $this->_parseXmpNode($values, $i, $meta);
+ while ($values[++$i]['tag'] != 'rdf:Alt');
+ $i++; // skip closing Alt tag
+ }
} else {
// Structure property