Bug 49522 - Small problem calling HttpRequest.IsLocal when worker_request is Null
Summary: Small problem calling HttpRequest.IsLocal when worker_request is Null
Status: NEW
Alias: None
Product: Class Libraries
Classification: Mono
Component: System.Web (show other bugs)
Version: 4.6.0 (C8)
Hardware: PC Linux
: --- normal
Target Milestone: Community
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2016-12-10 06:53 UTC by chaz.shrawder
Modified: 2016-12-15 14:35 UTC (History)
3 users (show)

See Also:
Tags:
Is this bug a regression?: ---
Last known good build:


Attachments

Description chaz.shrawder 2016-12-10 06:53:38 UTC
Below is a pretty basic description of what I've encountered. It's not something very large or complex, so I hope this is enough. Windows testing did not show this problem. 

If worker_request is null, the call fails and breaks a PostalMVC4 dependency. Returning false, as other calls in the class do, would prevent this behavior

GitHub file:
mono/mcs/class/System.Web/System.Web/HttpRequest.cs

Line # as of  Jul 6, 2015:
1727

Link:
https://github.com/mono/mono/blob/47a6f56439c9deab287be770c902d41e91480799/mcs/class/System.Web/System.Web/HttpRequest.cs#L1725


public bool IsLocal {
	get {
                // throws NullReferenceException
		string address = worker_request.GetRemoteAddress ();

		if (StrUtils.IsNullOrEmpty (address))
			return false;

		if (address == "127.0.0.1")
			return true;

		System.Net.IPAddress remoteAddr = System.Net.IPAddress.Parse (address);
		if (System.Net.IPAddress.IsLoopback (remoteAddr))
			return true;

		for (int i = 0; i < host_addresses.Length; i++)
			if (remoteAddr.Equals (host_addresses [i]))
				return true;

		return false;
	}
}

Note You need to log in before you can comment on or make changes to this bug.