
When using Kimchi via the UI, the browser checks whether the template URL is valid using a regular expression. However, that regexp doesn't match every valid URL out there and it causes problems on some browsers (e.g. the latest Firefox ESR). Use a simpler URL validation when creating new templates (i.e. only validate the possible web protocols). Even if a non-existing/invalid URL passes this validation, it will still be checked in the backend. Fix issue #518 (Unable to download ISO to storage pool on Firefox 31.3.0 ESR). Signed-off-by: Crístian Viana <vianac@linux.vnet.ibm.com> --- ui/js/src/kimchi.template_add_main.js | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/ui/js/src/kimchi.template_add_main.js b/ui/js/src/kimchi.template_add_main.js index 6223c96..46c4f84 100644 --- a/ui/js/src/kimchi.template_add_main.js +++ b/ui/js/src/kimchi.template_add_main.js @@ -425,19 +425,9 @@ kimchi.template_add_main = function() { }; kimchi.template_check_url = function(url) { - var protocols = "((https|http|ftp|ftps|tftp)?://)?", - userinfo = "(([0-9a-z_!~*'().&=+$%-]+:)?[0-9a-z_!~*'().&=+$%-]+@)?", - ip = "(\\d{1,3}\.){3}\\d{1,3}", - domain = "([0-9a-z_!~*'()-]+\.)*([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.[a-z]{2,6}", - port = "(:\\d{1,5})?", - address = "(/[\\w!~*'().;?:@&=+$,%#-]+)+", - domaintype = [ protocols, userinfo, domain, port, address ], - ipType = [ protocols, userinfo, ip, port, address ], - validate = function(type) { - return new RegExp('^' + type.join('') + '$'); - }; + var reg = /(https|http|ftp|ftps|tftp):\/\//; if (url.constructor === String) { - return validate(domaintype).test(url) || validate(ipType).test(url); + return reg.test(url); } return false; }; -- 2.1.0