diff --git a/lib/config-template.php b/lib/config-template.php
index f2cd131bd6778bf06447bbc5bc4e7f2d60a24520..4d6e38b6771647d2feb85f240048e2b3b66bcb98 100644
--- a/lib/config-template.php
+++ b/lib/config-template.php
@@ -18,7 +18,7 @@ define('DB_DATABASE','edugain');
// Validator locations
define('VALIDATOR_REQ','http://localhost:5000/validate?r=');
-define('VALIDATOR_TMP', '/srv/edugain.config/mds/tmp');
+define('VALIDATOR_TMP', '/srv/edugain.tmp/validator');
// details of simpleSAMLphp for management login
diff --git a/lib/validatorClass.php b/lib/validatorClass.php
index b9bc1ddb2556c155adf8a5001f4b4276e7043c4d..0abc2c35cb2375685b7dce0056835b48a2f5c20e 100644
--- a/lib/validatorClass.php
+++ b/lib/validatorClass.php
@@ -121,7 +121,7 @@ class Validator {
if (!isset($_REQUEST['entities']))
$this->params['validate'] = 1;
}
- if (isset($_REQUEST['xmlout']))
+ if (isset($_REQUEST['xmlout']) || (!empty($_REQUEST['format']) && $_REQUEST['format'] == 'xml') )
$this->params['xmlout'] = $this->params['auto'] = $this->params['validate'] = 1;
if (!isset($_REQUEST['oneentity']))
$this->params['entities'] = 1;
diff --git a/web/validator-check-logos.php b/web/validator-check-logos.php
index 89c2c13ef13e80bb9ec7c062dc7ccac0c3148b07..058323755f106543ef5a0fde0c508bc44aa9522f 100644
--- a/web/validator-check-logos.php
+++ b/web/validator-check-logos.php
@@ -67,7 +67,12 @@ foreach ($_POST as $k=>$v) {
fclose($fp);
if ($suffix == 'svg') {
$f = fopen($fileName, 'r');
- $imageData = fread($f, filesize($fileName));
+ if ($f && filesize($fileName) > 0) {
+ $imageData = fread($f, filesize($fileName));
+ } else {
+ $imageData = "";
+ $result[] = 'ERROR: Could not download logo';
+ }
}
} else {
$fileName = '/tmp/testlogo'.bin2hex(openssl_random_pseudo_bytes(10));
@@ -99,15 +104,30 @@ foreach ($_POST as $k=>$v) {
} else {
$result[] = 'OKLOCAL';
}
+ $skipcheck = false;
if ($suffix == 'svg') {
- $xmlget = simplexml_load_string($imageData);
- $xmlattributes = $xmlget->attributes();
+ try {
+ $xmlget = simplexml_load_string($imageData);
+ if ($xmlget !== false) {
+ $xmlattributes = $xmlget->attributes();
+ } else {
+ $result[] = "ERROR: not SVG image";
+ $xmlattributes = NULL;
+ $skipcheck = true;
+ }
+ } catch (Exception $e) {
+ $result[] = "ERROR: not SVG image";
+ $skipcheck = true;
+ }
+ if ($xmlattributes) {
$width = $xmlattributes->width;
$height = $xmlattributes->height;
- $size = array($width, $hight);
+ $size = array($width, $height);
+ }
} else {
$size = getimagesize($fileName);
}
+ if (!$skipcheck) {
if ($size === false && !preg_match('/\.svg$/i', $limg)) {
$result[] = "ERROR: The downloaded logo does not seem to be a PNG, JPG, GIF, SVG or a generally accepted image file format. Therefore, it most probably will not be displayed by web browsers.";
}
@@ -127,6 +147,7 @@ foreach ($_POST as $k=>$v) {
if ($width && $height && isset($size[0]) && isset($size[1]) && round(10*$width/$height) != round(10*$size[0]/$size[1])) {
$result[] = "WARNING: Mismatching proportions (".$width.'px:'.$height."px=".round($width/$height,1)." in metadata vs ".$size[0].'px:'.$size[1].'px='.round($size[0]/$size[1],1)." actual). The logo will be displayed distorted by Discovery Services and Service Providers.";
}
+ }
$res = array('result' => '', 'url' => '');
if ($remote != '') {
$res['url'] = $remote;