From e8def3b1ff9e3d092c6cb0acaf336b9f897ae1c4 Mon Sep 17 00:00:00 2001 From: henoheno Date: Tue, 23 Nov 2004 18:39:42 +0900 Subject: [PATCH] Added an URL-length stopper into get_interwiki_url() --- lib/make_link.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/make_link.php b/lib/make_link.php index aa906d3..b471bb4 100644 --- a/lib/make_link.php +++ b/lib/make_link.php @@ -2,7 +2,7 @@ ///////////////////////////////////////////////// // PukiWiki - Yet another WikiWikiWeb clone. // -// $Id: make_link.php,v 1.5 2004/10/31 05:12:24 henoheno Exp $ +// $Id: make_link.php,v 1.6 2004/11/23 09:39:42 henoheno Exp $ // // ¥ê¥ó¥¯¤òÉղ乤ë @@ -752,7 +752,7 @@ function get_interwiki_url($name, $param) static $encode_aliases = array('sjis'=>'SJIS', 'euc'=>'EUC-JP', 'utf8'=>'UTF-8'); if (! isset($interwikinames)) { - $interwikinames = array(); + $interwikinames = $matches = array(); foreach (get_source($interwiki) as $line) { if (preg_match('/\[((?:(?:https?|ftp|news):\/\/|\.\.?\/)[!~*\'();\/?:\@&=+\$,%#\w.-]*)\s([^\]]+)\]\s?([^\s]*)/', $line, $matches)) $interwikinames[$matches[2]] = array($matches[1], $matches[3]); @@ -761,7 +761,7 @@ function get_interwiki_url($name, $param) if (! isset($interwikinames[$name])) return FALSE; - list($url,$opt) = $interwikinames[$name]; + list($url, $opt) = $interwikinames[$name]; // ʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥° switch ($opt) { @@ -800,6 +800,9 @@ function get_interwiki_url($name, $param) $url .= $param; } + $len = strlen($url); + if ($len > 512) die_message('InterWiki URL too long: ' . $len . ' characters'); + return $url; } ?> -- 2.11.0