Make unix sockets require allow-write (#4939)

This commit is contained in:
Luca Casonato 2020-04-27 22:56:24 +02:00 committed by GitHub
parent a1974cbe43
commit 95a08857f1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 2 deletions

View file

@ -1919,7 +1919,7 @@ declare namespace Deno {
*
* const listener = Deno.listen({ address: "/foo/bar.sock", transport: "unix" })
*
* Requires `allow-read` permission. */
* Requires `allow-read` and `allow-write` permission. */
export function listen(
options: UnixListenOptions & { transport: "unix" }
): Listener;
@ -1940,7 +1940,7 @@ declare namespace Deno {
*
* const listener = Deno.listen({ address: "/foo/bar.sock", transport: "unixpacket" })
*
* Requires `allow-read` permission. */
* Requires `allow-read` and `allow-write` permission. */
export function listen(
options: UnixListenOptions & { transport: "unixpacket" }
): DatagramConn;

View file

@ -521,6 +521,7 @@ fn op_listen(
} if transport == "unix" || transport == "unixpacket" => {
let address_path = net_unix::Path::new(&args.address);
state.check_read(&address_path)?;
state.check_write(&address_path)?;
let (rid, local_addr) = if transport == "unix" {
net_unix::listen_unix(&mut resource_table, &address_path)?
} else {