Commit 3998a7d0 authored by Eric Willigers's avatar Eric Willigers Committed by Chromium LUCI CQ

Web Share For Chrome OS: ShareTwoFiles tests ../ in path

SharesheetClientBrowserTest::ShareTwoFiles uses script to
share a file named '../sample.mp4'.

We verify that this becomes a filename beginning with 'share',
with no directory escape.

Change-Id: I731afa6e7e0c071b83eac8b461d382acad6cac93
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2567869
Commit-Queue: Eric Willigers <ericwilligers@chromium.org>
Reviewed-by: default avatarAlan Cutter <alancutter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#834087}
parent e09faad6
......@@ -4,6 +4,7 @@
#include "chrome/browser/webshare/chromeos/store_file_task.h"
#include "base/strings/string_util.h"
#include "base/threading/scoped_blocking_call.h"
namespace webshare {
......@@ -17,7 +18,11 @@ StoreFileTask::StoreFileTask(base::FilePath filename,
available_space_(available_space),
callback_(std::move(callback)),
read_pipe_watcher_(FROM_HERE,
mojo::SimpleWatcher::ArmingPolicy::AUTOMATIC) {}
mojo::SimpleWatcher::ArmingPolicy::AUTOMATIC) {
// |filename| is generated by GenerateFileName().
DCHECK(!filename_.ReferencesParent());
DCHECK(base::StartsWith(filename_.BaseName().MaybeAsASCII(), "share"));
}
StoreFileTask::~StoreFileTask() = default;
......
......@@ -33,7 +33,7 @@
async function share_multiple_files() {
try {
const first_file = create_file('sample.mp3', 'audio/mp3', 345);
const second_file = create_file('sample.mp4', 'video/mp4', 67890);
const second_file = create_file('../sample.mp4', 'video/mp4', 67890);
await navigator.share({files: [first_file, second_file]});
return 'share succeeded';
} catch(error) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment