New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 682339 link

Starred by 1 user

Issue metadata

Status: Archived
Owner:
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

ChromeOS firewall fails to open local ports for Pepper Socket API.

Project Member Reported by sergeyu@chromium.org, Jan 18 2017

Issue description

Saw the following message in the log:

[6367:6367:0117/181706.934843:WARNING:pepper_udp_socket_message_filter.cc(542)] Firewall hole could not be opened.

From cursory look at the related code it appears firewall may not allow to open ports on addresses that are longer than 16 characters in string representation, i.e. most IPv6 addresses. See kMaxInterfaceNameLen in https://chromium.googlesource.com/chromiumos/platform2/+/master/permission_broker/port_tracker.cc 

 
But that's not for an address, that's for an interface name. IIRC the two places where that is checked, it's checked against the interface name, like "eth0" or "wlan0".
If that's supposed to be an interface name then there is a bug in content/browser/renderer_host/pepper/pepper_socket_utils.cc - it sends result of net::IPEndPoint::ToString() as an interface name
The parameter is called "iface". It's supposed to be an interface name.
Cc: aval...@chromium.org
Summary: ChromeOS firewall fails to open local ports for Pepper Socket API. (was: ChromeOS firewall fails to open local ports, particularly on IPv6 addresses.)
+avallee, can you comment? (AFAICT you added firewall support in pepper API)

Another related issue I see is that firewall ports are not open for WebRTC connections (see https://codesearch.chromium.org/chromium/src/content/browser/renderer_host/p2p/socket_host_udp.cc?sq=package:chromium&dr=CSs )
Is there a tracking bug for that issue?

Comment 5 by w...@chromium.org, Jan 19 2017

Should the Pepper callsite just be passing "", to open the port up across all interfaces?
If that's what you want to do, then yes.

I wonder how this ever worked. Why wasn't it failing before?
Looking at the code, what I wrote about using the address was wrong.

Either it should just open the port on all interfaces or else needs to match the ip back to an interface name somewhere.
Owner: sergeyu@chromium.org
Status: Started (was: Untriaged)
pending fix https://codereview.chromium.org/2650793003/
Jorge, I filed bug 684040 to investigate why everything still worked dispute this bug.
Project Member

Comment 10 by bugdroid1@chromium.org, Jan 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/58b74d7b4bbc0f48f47e2fc4f408e79571a650c5

commit 58b74d7b4bbc0f48f47e2fc4f408e79571a650c5
Author: sergeyu <sergeyu@chromium.org>
Date: Tue Jan 24 00:21:59 2017

Fix Pepper socket API to open incoming ports in the firewall.

Previously the API would request ports to be opened passing IP address
as an interface name. Updated it to pass an empty string, so the port
gets open on all interfaces.

BUG= 682339 

Review-Url: https://codereview.chromium.org/2650793003
Cr-Commit-Position: refs/heads/master@{#445556}

[modify] https://crrev.com/58b74d7b4bbc0f48f47e2fc4f408e79571a650c5/content/browser/renderer_host/pepper/pepper_socket_utils.cc

Status: Fixed (was: Started)

Comment 12 by dchan@google.com, Apr 17 2017

Labels: VerifyIn-59

Comment 13 by dchan@google.com, May 30 2017

Labels: VerifyIn-60
Labels: VerifyIn-61

Comment 15 by dchan@chromium.org, Oct 14 2017

Status: Archived (was: Fixed)

Sign in to add a comment