From 29bdcba1e8e9a17bab978748b2700aefd4513e44 Mon Sep 17 00:00:00 2001 From: George Roman Date: Tue, 18 Jun 2019 17:01:51 +0300 Subject: [PATCH] Fix panic on opening a directory --- components/net/fetch/methods.rs | 8 ++++++++ .../metadata/webdriver/tests/get_current_url/get.py.ini | 7 ++++++- .../metadata/webdriver/tests/navigate_to/navigate.py.ini | 4 +++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/components/net/fetch/methods.rs b/components/net/fetch/methods.rs index bb7b6595b76..a3f0e11ffe2 100644 --- a/components/net/fetch/methods.rs +++ b/components/net/fetch/methods.rs @@ -615,6 +615,14 @@ fn scheme_fetch( } if let Ok(file_path) = url.to_file_path() { if let Ok(file) = File::open(file_path.clone()) { + if let Ok(metadata) = file.metadata() { + if metadata.is_dir() { + return Response::network_error(NetworkError::Internal( + "Opening a directory is not supported".into(), + )); + } + } + // Get range bounds (if any) and try to seek to the requested offset. // If seeking fails, bail out with a NetworkError. let file_size = match file.metadata() { diff --git a/tests/wpt/metadata/webdriver/tests/get_current_url/get.py.ini b/tests/wpt/metadata/webdriver/tests/get_current_url/get.py.ini index aa5ace484bf..10212c3612d 100644 --- a/tests/wpt/metadata/webdriver/tests/get_current_url/get.py.ini +++ b/tests/wpt/metadata/webdriver/tests/get_current_url/get.py.ini @@ -1,2 +1,7 @@ [get.py] - disabled: for now + [test_no_browsing_context] + expected: ERROR + + [test_get_current_url_nested_browsing_context] + expected: FAIL + diff --git a/tests/wpt/metadata/webdriver/tests/navigate_to/navigate.py.ini b/tests/wpt/metadata/webdriver/tests/navigate_to/navigate.py.ini index b9ec0b5e79c..d5a4b0288d8 100644 --- a/tests/wpt/metadata/webdriver/tests/navigate_to/navigate.py.ini +++ b/tests/wpt/metadata/webdriver/tests/navigate_to/navigate.py.ini @@ -1,2 +1,4 @@ [navigate.py] - disabled: for now + [test_no_browsing_context] + expected: ERROR +