diff --git a/src/server.rs b/src/server.rs index f6f6a02..90faa4d 100644 --- a/src/server.rs +++ b/src/server.rs @@ -241,7 +241,13 @@ impl InnerService { async fn handle_ls_dir(&self, path: &Path, exist: bool, res: &mut Response) -> BoxResult<()> { let mut paths: Vec = vec![]; if exist { - let mut rd = fs::read_dir(path).await?; + let mut rd = match fs::read_dir(path).await { + Ok(rd) => rd, + Err(_) => { + status!(res, StatusCode::FORBIDDEN); + return Ok(()); + } + }; while let Some(entry) = rd.next_entry().await? { let entry_path = entry.path(); if let Ok(Some(item)) = self.to_pathitem(entry_path, path.to_path_buf()).await {