Non sono un programmatore PHP, ma a senso:
public static function check($path, $ds = DIRECTORY_SEPARATOR)
{
if (strpos($path, '..') !== false) {
JError::raiseError(20, 'JPath::check Use of relative paths not permitted'); // don't translate
jexit();
}
$path = JPath::clean($path);
if (strpos($path, JPath::clean(JPATH_ROOT)) !== 0) {
JError::raiseError(20, 'JPath::check Snooping out of bounds @ '.$path); // don't translate
jexit();
}
return $path;
}
esegue un controllo sulla validità del path relativo ad un file e solleva un'eccezione qualora qualcosa non vada bene. Tuttavia non è qui che devi patchare, almeno stando al post che ti ho riportato.
Il punto è contenuto nel successivo blocco di codice:
public static function clean($path, $ds = DIRECTORY_SEPARATOR)
{
$path = trim($path);
if (empty($path)) {
$path = JPATH_ROOT; <-- LA PATCH DICE DI APPLICARLA QUI
} else {
// Remove double slashes and backslahses and convert all slashes and backslashes to DS
$path = preg_replace('#[/\\\\]+#', $ds, $path);
}
return $path;
}
Che ha il compito di rimuovere eventuali slash in eccesso.
Provaci, al massimo non funziona, no?