function filebrowser_safe_folder in Filebrowser 5
Convert windows path values to use slashes, prevent slashes used repeatedly, and try to catch and eliminate path walkback attemepts. Also prevent from accessing version control system folders.
1 call to filebrowser_safe_folder()
- filebrowser_get_list in ./
filebrowser.module  - Returns a list of files in a subfolder under the admin specified filebrowser root. File system details (size, last modification) is added, plus a metafile is parsed to gather more information, if available.
 
File
- ./
filebrowser.module, line 349  
Code
function filebrowser_safe_folder($subfolder) {
  $folder = variable_get('filebrowser_root', '') . "/{$subfolder}";
  while (TRUE) {
    $safer = str_replace(array(
      "\\",
      "../",
      "/.svn",
      "/CVS",
      "..",
    ), array(
      "/",
      "",
      "",
      "",
      "",
    ), $folder);
    if ($safer !== $folder) {
      $folder = $safer;
    }
    else {
      break;
    }
  }
  $folder = preg_replace("!^/*([^/].+[^/])/*\$!", "\\1", $folder);
  return preg_replace("!/+!", "/", $folder);
}