Launchpad has imported 6 comments from the remote bug at
https://bugzilla.mozilla.org/show_bug.cgi?id=924395.

If you reply to an imported comment from within Launchpad, your comment
will be sent to the remote bug automatically. Read more about
Launchpad's inter-bugtracker facilities at
https://help.launchpad.net/InterBugTracking.

------------------------------------------------------------------------
On 2013-10-08T14:32:27+00:00 Cs-gon wrote:

Created attachment 814387
gnome_proxy_netmask_ipv6_conversion.patch

When entering URLs with IP adresses in Firefox, those IP addresses are
not matched correctly to the "ignore hosts" setting, when having
configured Gnome proxy settings and using "Use system proxy settings" in
Firefox, because the IP addresses get converted to IPv6 but not the
netmask/prefix.


Steps to reproduce:

Use a Firefox with Gnome support.

Configure proxy settings in Gnome like in the following example (change
the proxy host/port to something sensible):

gsettings set org.gnome.system.proxy mode 'manual' 
gsettings set org.gnome.system.proxy.http enabled true
gsettings set org.gnome.system.proxy.http host 'example.com'
gsettings set org.gnome.system.proxy.http port 8080
gsettings set org.gnome.system.proxy.ftp host 'example.com'
gsettings set org.gnome.system.proxy.ftp port 8080
gsettings set org.gnome.system.proxy.https host 'example.com'
gsettings set org.gnome.system.proxy.https port 8080
gsettings set org.gnome.system.proxy ignore-hosts "['localhost', '127.0.0.0/8']"

After that, choose "Use system proxy settings" in Firefox, so Firefox
uses the Gnome proxy settings.

When entering URLs containing hostnames, Firefox uses the proxy as
intended. But when using any IP addresses in URLs that are not in the
127.0.0.0/8 network, Firefox doesn't use the proxy, but tries to connect
directly to those IP addresses. The expected behavior would be, that
Firefox ignores the proxy only for addresses in the 127.0.0.0/8 network,
not for all addresses.

When removing the entry "127.0.0.0/8" from the ignore-hosts, Firefox
again uses the proxy for all URLs containing IP addresses, as expected.


Looking in the code in
toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp in function
HostIgnoredByProxy, the IP addresses specified in the ignore-hosts and
the URL get converted to IPv6, the netmask gets applied, and the results
are then compared. The problem is however, that the conversion to IPv6
doesn't include the netmask. So the wrong netmask (IPv4 netmask) get's
applied to the IPv6 addresses, and when comparing the addresses this
causes a match for any IPv4 address.

This problem can easily be verified when changing the netmask/prefix in
the ignore-hosts setting to a IPv6 prefix (IPv4 prefix + 96). So when
changing the entry to "127.0.0.0/104" it works as expected, in the sense
that only connections for URLs containing IP addresses of the
127.0.0.0/8 network are done directly, connections for URLs containing
other IP adresses are done through the proxy.


I have attached a patch against mozilla-central to fix the problem. The code 
converts the IPv4 prefixes to IPv6 prefixes (adds 96) before the netmask get 
applied. This is along the lines of other proxy code in 
netwerk/base/src/nsProtocolProxyService.cpp.

I have tested the attached patch and it fixes the problem for me.

I have read the information about submitting bugs, and patches on 
developer.mozilla.org, but since this is my first time, and I'm not 100% sure 
if everything applies to me, or how exactly, it would be nice to point me in 
the right direction, if I can do something to help get the patch included.
 
Thanks!

Reply at:
https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1226537/comments/2

------------------------------------------------------------------------
On 2013-10-08T21:47:43+00:00 Karlt wrote:

Comment on attachment 814387
gnome_proxy_netmask_ipv6_conversion.patch

Thanks for the nice diagnosis, Carsten.

I'm not familiar with details of ipv6 masks, but, looking at 
proxy_MaskIPv6Addr, it looks like ipv6 masks of <= 32 are meaningful, and so 
the conversion should be performed only for ipv4 addresses, as in 
nsProtocolProxyService.
http://hg.mozilla.org/mozilla-central/annotate/64b497e6f593/netwerk/base/src/nsProtocolProxyService.cpp#l1362

Perhaps add an optional int32_t* aMask parameter to ConvertToIPV6Addr()?

Reply at:
https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1226537/comments/3

------------------------------------------------------------------------
On 2013-10-15T09:28:51+00:00 Cs-gon wrote:

Created attachment 817058
new patch with the proposed changesgnome_proxy_netmask_ipv6_conversion_2.patch

Reply at:
https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1226537/comments/5

------------------------------------------------------------------------
On 2013-10-15T09:45:22+00:00 Cs-gon wrote:

Thanks for the feedback!

And you are right, the code in the first patch could pose a problem when
IPv6 network are configured in the ignore-hosts list. I should probably
have paid more attention to the code in nsProtocolProxyService.cpp.

I attached a new patch, which does the conversion in
ConvertToIPV6Addr(), and should only be done for IPv4 addresses, as it
is done in nsProtocolProxyService.cpp. I wonder though, why the code in
nsProtocolProxyService.cpp just skips over the netmask conversion, when
an invalid (>32) netmask is found. If a user specifies an invalid IPv4
address/netmask pair, like "127.0.0.1/33", it leads to a similar problem
as with the Gnome proxy code, and suddenly every IPv4 Address in an URL
produces a match against this (invalid) ignore-hosts entry. I verified
this behavior by adding an "127.0.0.1/33" entry in the internal proxy
settings in Firefox.

I think a better way would be to skip those invalid ignore-hosts
entries. So in the new attached patch the conversion will return false
if the netmask is invalid, so the entry gets skipped.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1226537/comments/6

------------------------------------------------------------------------
On 2013-10-16T12:28:49+00:00 Ryanvm wrote:

https://hg.mozilla.org/integration/mozilla-inbound/rev/b936f0735ad8

Reply at:
https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1226537/comments/7

------------------------------------------------------------------------
On 2013-10-16T21:22:36+00:00 Ryanvm wrote:

https://hg.mozilla.org/mozilla-central/rev/b936f0735ad8

Reply at:
https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1226537/comments/8


** Changed in: firefox
       Status: Unknown => Fix Released

** Changed in: firefox
   Importance: Unknown => Medium

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to firefox in Ubuntu.
https://bugs.launchpad.net/bugs/1226537

Title:
  System proxy settings doesn't work in Firefox when URL is a numeric IP
  address

Status in The Mozilla Firefox Browser:
  Fix Released
Status in “firefox” package in Ubuntu:
  Confirmed

Bug description:
  [Impact] 
  When entering URLs with IP adresses in Firefox, those IP addresses are not 
matched correctly to the "ignore hosts" setting, when having configured Gnome 
proxy settings and using "Use system proxy settings" in Firefox, because the IP 
addresses get converted to IPv6 but not the netmask/prefix.

  [Test Case]
   1. Set up a fake/invalid HTTP proxy server in Network options from 
      "System Settings->Network->Network Proxy "
   2. Try to go to google.com (make sure it's not https if you only set a http 
proxy)
   3. Try to go to 173.194.36.14 (use "ping google.com" to see IP)

  Actual Results:
      Google.com fails (which is good); but 173.194.36.14 succeeds
  Expected Results: 
      They should both fail with a non-working proxy server
  Note:
    doing this "backwards" because it's easier to reproduce on you don't have 
to care about having a real proxy server.

  [Regression Potential] 
    * None that I could see.

  [Other Info]
    * The patch is pulled from 
https://hg.mozilla.org/mozilla-central/rev/b936f0735ad8 .

To manage notifications about this bug go to:
https://bugs.launchpad.net/firefox/+bug/1226537/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to