projects
/
mono.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6c637db
)
Use DISABLE_CAS_USE to remove the use of several *Permission calls (forcibly removed...
author
Sebastien Pouliot
<sebastien@xamarin.com>
Wed, 25 Nov 2015 22:08:21 +0000
(17:08 -0500)
committer
Marek Safar
<marek.safar@gmail.com>
Tue, 3 May 2016 09:40:05 +0000
(11:40 +0200)
mcs/class/referencesource/System.Data.Linq/misc/SecurityUtils.cs
patch
|
blob
|
history
mcs/class/referencesource/System.Data/System/Data/Common/AdapterUtil.cs
patch
|
blob
|
history
mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Globals.cs
patch
|
blob
|
history
mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/XmlObjectSerializerContext.cs
patch
|
blob
|
history
mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/XmlObjectSerializerWriteContext.cs
patch
|
blob
|
history
mcs/class/referencesource/System/compmod/system/componentmodel/design/DesigntimeLicenseContext.cs
patch
|
blob
|
history
mcs/class/referencesource/System/compmod/system/diagnostics/Trace.cs
patch
|
blob
|
history
mcs/class/referencesource/System/compmod/system/diagnostics/TraceEventCache.cs
patch
|
blob
|
history
mcs/class/referencesource/System/compmod/system/diagnostics/TraceInternal.cs
patch
|
blob
|
history
diff --git
a/mcs/class/referencesource/System.Data.Linq/misc/SecurityUtils.cs
b/mcs/class/referencesource/System.Data.Linq/misc/SecurityUtils.cs
index 159dedbb6c64824800d5117d1e9af67d2c300f84..e4ede4374f489ff81e9c074a2864aa44c00bf630 100644
(file)
--- a/
mcs/class/referencesource/System.Data.Linq/misc/SecurityUtils.cs
+++ b/
mcs/class/referencesource/System.Data.Linq/misc/SecurityUtils.cs
@@
-37,6
+37,7
@@
namespace System.Windows.Forms
/// </devdoc>
internal static class SecurityUtils {
/// </devdoc>
internal static class SecurityUtils {
+#if !DISABLE_CAS_USE
private static volatile ReflectionPermission memberAccessPermission = null;
private static volatile ReflectionPermission restrictedMemberAccessPermission = null;
private static volatile ReflectionPermission memberAccessPermission = null;
private static volatile ReflectionPermission restrictedMemberAccessPermission = null;
@@
-58,24
+59,30
@@
namespace System.Windows.Forms
return restrictedMemberAccessPermission;
}
}
return restrictedMemberAccessPermission;
}
}
+#endif
private static void DemandReflectionAccess(Type type) {
private static void DemandReflectionAccess(Type type) {
+#if !DISABLE_CAS_USE
try {
MemberAccessPermission.Demand();
}
catch (SecurityException) {
DemandGrantSet(type.Assembly);
}
try {
MemberAccessPermission.Demand();
}
catch (SecurityException) {
DemandGrantSet(type.Assembly);
}
+#endif
}
[SecuritySafeCritical]
private static void DemandGrantSet(Assembly assembly) {
}
[SecuritySafeCritical]
private static void DemandGrantSet(Assembly assembly) {
+#if !DISABLE_CAS_USE
PermissionSet targetGrantSet = assembly.PermissionSet;
targetGrantSet.AddPermission(RestrictedMemberAccessPermission);
targetGrantSet.Demand();
PermissionSet targetGrantSet = assembly.PermissionSet;
targetGrantSet.AddPermission(RestrictedMemberAccessPermission);
targetGrantSet.Demand();
+#endif
}
private static bool HasReflectionPermission(Type type) {
}
private static bool HasReflectionPermission(Type type) {
+#if !DISABLE_CAS_USE
try {
DemandReflectionAccess(type);
return true;
try {
DemandReflectionAccess(type);
return true;
@@
-84,6
+91,9
@@
namespace System.Windows.Forms
}
return false;
}
return false;
+#else
+ return true;
+#endif
}
}
diff --git
a/mcs/class/referencesource/System.Data/System/Data/Common/AdapterUtil.cs
b/mcs/class/referencesource/System.Data/System/Data/Common/AdapterUtil.cs
index 04cd1e4a72cf456d12e87700413fd092948ff0c3..1116bfda7643e5c469c326133001c17b0f565ecd 100644
(file)
--- a/
mcs/class/referencesource/System.Data/System/Data/Common/AdapterUtil.cs
+++ b/
mcs/class/referencesource/System.Data/System/Data/Common/AdapterUtil.cs
@@
-2120,6
+2120,7
@@
namespace System.Data.Common {
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
static internal Stream GetFileStream(string filename) {
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
static internal Stream GetFileStream(string filename) {
+#if !DISABLE_CAS_USE
(new FileIOPermission(FileIOPermissionAccess.Read, filename)).Assert();
try {
return new FileStream(filename,FileMode.Open,FileAccess.Read,FileShare.Read);
(new FileIOPermission(FileIOPermissionAccess.Read, filename)).Assert();
try {
return new FileStream(filename,FileMode.Open,FileAccess.Read,FileShare.Read);
@@
-2127,11
+2128,15
@@
namespace System.Data.Common {
finally {
FileIOPermission.RevertAssert();
}
finally {
FileIOPermission.RevertAssert();
}
+#else
+ return new FileStream(filename,FileMode.Open,FileAccess.Read,FileShare.Read);
+#endif
}
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
static internal FileVersionInfo GetVersionInfo(string filename) {
}
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
static internal FileVersionInfo GetVersionInfo(string filename) {
+#if !DISABLE_CAS_USE
(new FileIOPermission(FileIOPermissionAccess.Read, filename)).Assert(); // MDAC 62038
try {
return FileVersionInfo.GetVersionInfo(filename); // MDAC 60411
(new FileIOPermission(FileIOPermissionAccess.Read, filename)).Assert(); // MDAC 62038
try {
return FileVersionInfo.GetVersionInfo(filename); // MDAC 60411
@@
-2139,7
+2144,11
@@
namespace System.Data.Common {
finally {
FileIOPermission.RevertAssert();
}
finally {
FileIOPermission.RevertAssert();
}
+#else
+ return FileVersionInfo.GetVersionInfo(filename); // MDAC 60411
+#endif
}
}
+
#if MOBILE
static internal object LocalMachineRegistryValue(string subkey, string queryvalue) {
return null;
#if MOBILE
static internal object LocalMachineRegistryValue(string subkey, string queryvalue) {
return null;
diff --git
a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Globals.cs
b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Globals.cs
index 0cdf9cde68b3c6d5905d579f9b74130ae7268f4d..f18da31004bd1ed5d7460c0754a28d30cf974b62 100644
(file)
--- a/
mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Globals.cs
+++ b/
mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Globals.cs
@@
-1105,6
+1105,7
@@
namespace System.Runtime.Serialization
}
}
}
}
+#if !DISABLE_CAS_USE
[Fx.Tag.SecurityNote(Critical = "Holds instance of SecurityPermission that we will Demand for SerializationFormatter."
+ " Should not be modified to something else.")]
[SecurityCritical]
[Fx.Tag.SecurityNote(Critical = "Holds instance of SecurityPermission that we will Demand for SerializationFormatter."
+ " Should not be modified to something else.")]
[SecurityCritical]
@@
-1136,7
+1137,7
@@
namespace System.Runtime.Serialization
return memberAccessPermission;
}
}
return memberAccessPermission;
}
}
-
+#endif
public const bool DefaultIsRequired = false;
public const bool DefaultEmitDefaultValue = true;
public const bool DefaultIsRequired = false;
public const bool DefaultEmitDefaultValue = true;
diff --git
a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/XmlObjectSerializerContext.cs
b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/XmlObjectSerializerContext.cs
index a374cebc45505e20a375bf48732e406b2534bc69..6a71d9a194ce720d30924b411a8c31f90d1eb739 100644
(file)
--- a/
mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/XmlObjectSerializerContext.cs
+++ b/
mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/XmlObjectSerializerContext.cs
@@
-89,11
+89,13
@@
namespace System.Runtime.Serialization
[SecuritySafeCritical]
public void DemandSerializationFormatterPermission()
{
[SecuritySafeCritical]
public void DemandSerializationFormatterPermission()
{
+#if !DISABLE_CAS_USE
if (!demandedSerializationFormatterPermission)
{
Globals.SerializationFormatterPermission.Demand();
demandedSerializationFormatterPermission = true;
}
if (!demandedSerializationFormatterPermission)
{
Globals.SerializationFormatterPermission.Demand();
demandedSerializationFormatterPermission = true;
}
+#endif
}
[Fx.Tag.SecurityNote(Critical = "Demands MemberAccess permission. demanding the right permission is critical.",
}
[Fx.Tag.SecurityNote(Critical = "Demands MemberAccess permission. demanding the right permission is critical.",
@@
-101,11
+103,13
@@
namespace System.Runtime.Serialization
[SecuritySafeCritical]
public void DemandMemberAccessPermission()
{
[SecuritySafeCritical]
public void DemandMemberAccessPermission()
{
+#if !DISABLE_CAS_USE
if (!demandedMemberAccessPermission)
{
Globals.MemberAccessPermission.Demand();
demandedMemberAccessPermission = true;
}
if (!demandedMemberAccessPermission)
{
Globals.MemberAccessPermission.Demand();
demandedMemberAccessPermission = true;
}
+ #endif
}
public StreamingContext GetStreamingContext()
}
public StreamingContext GetStreamingContext()
diff --git
a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/XmlObjectSerializerWriteContext.cs
b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/XmlObjectSerializerWriteContext.cs
index a5f77c25aff10528f3bdfc0013f4ee124d78ec4f..3d953393b4bd0819310efdef8c111cee09cdebe6 100644
(file)
--- a/
mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/XmlObjectSerializerWriteContext.cs
+++ b/
mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/XmlObjectSerializerWriteContext.cs
@@
-494,8
+494,10
@@
namespace System.Runtime.Serialization
[MethodImpl(MethodImplOptions.NoInlining)]
internal void GetObjectData(ISerializable obj, SerializationInfo serInfo, StreamingContext context)
{
[MethodImpl(MethodImplOptions.NoInlining)]
internal void GetObjectData(ISerializable obj, SerializationInfo serInfo, StreamingContext context)
{
+#if !DISABLE_CAS_USE
// Demand the serialization formatter permission every time
Globals.SerializationFormatterPermission.Demand();
// Demand the serialization formatter permission every time
Globals.SerializationFormatterPermission.Demand();
+#endif
obj.GetObjectData(serInfo, context);
}
obj.GetObjectData(serInfo, context);
}
diff --git
a/mcs/class/referencesource/System/compmod/system/componentmodel/design/DesigntimeLicenseContext.cs
b/mcs/class/referencesource/System/compmod/system/componentmodel/design/DesigntimeLicenseContext.cs
index e4cd3937f2ba84021550c03de40df0a5ed1c7427..6938ce280f6ea9405ff25143a7b96177a50c076b 100644
(file)
--- a/
mcs/class/referencesource/System/compmod/system/componentmodel/design/DesigntimeLicenseContext.cs
+++ b/
mcs/class/referencesource/System/compmod/system/componentmodel/design/DesigntimeLicenseContext.cs
@@
-93,6
+93,7
@@
namespace System.ComponentModel.Design {
Debug.WriteLineIf(RuntimeLicenseContextSwitch.TraceVerbose,"rawfile: " + rawFile);
string codeBase;
Debug.WriteLineIf(RuntimeLicenseContextSwitch.TraceVerbose,"rawfile: " + rawFile);
string codeBase;
+#if !DISABLE_CAS_USE
// FileIOPermission is required for ApplicationBase in URL-hosted domains
FileIOPermission perm = new FileIOPermission(PermissionState.Unrestricted);
perm.Assert();
// FileIOPermission is required for ApplicationBase in URL-hosted domains
FileIOPermission perm = new FileIOPermission(PermissionState.Unrestricted);
perm.Assert();
@@
-102,6
+103,9
@@
namespace System.ComponentModel.Design {
finally {
CodeAccessPermission.RevertAssert();
}
finally {
CodeAccessPermission.RevertAssert();
}
+#else
+ codeBase = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
+#endif
if (rawFile != null && codeBase != null) {
licenseFile = new Uri(new Uri(codeBase), rawFile);
}
if (rawFile != null && codeBase != null) {
licenseFile = new Uri(new Uri(codeBase), rawFile);
}
@@
-129,6
+133,7
@@
namespace System.ComponentModel.Design {
// file://fullpath/foo.exe
//
string fileName;
// file://fullpath/foo.exe
//
string fileName;
+#if !DISABLE_CAS_USE
FileIOPermission perm = new FileIOPermission(PermissionState.Unrestricted);
perm.Assert();
try
FileIOPermission perm = new FileIOPermission(PermissionState.Unrestricted);
perm.Assert();
try
@@
-140,6
+145,10
@@
namespace System.ComponentModel.Design {
{
CodeAccessPermission.RevertAssert();
}
{
CodeAccessPermission.RevertAssert();
}
+#else
+ fileName = GetLocalPath(asm.EscapedCodeBase);
+ fileName = new FileInfo(fileName).Name;
+#endif
Stream s = asm.GetManifestResourceStream(fileName + ".licenses");
if (s == null) {
Stream s = asm.GetManifestResourceStream(fileName + ".licenses");
if (s == null) {
@@
-245,10
+254,11
@@
namespace System.ComponentModel.Design {
static Stream OpenRead(Uri resourceUri) {
Stream result = null;
static Stream OpenRead(Uri resourceUri) {
Stream result = null;
-
+#if !DISABLE_CAS_USE
PermissionSet perms = new PermissionSet(PermissionState.Unrestricted);
perms.Assert();
PermissionSet perms = new PermissionSet(PermissionState.Unrestricted);
perms.Assert();
+#endif
try {
WebClient webClient = new WebClient();
webClient.Credentials = CredentialCache.DefaultCredentials;
try {
WebClient webClient = new WebClient();
webClient.Credentials = CredentialCache.DefaultCredentials;
@@
-257,10
+267,11
@@
namespace System.ComponentModel.Design {
catch (Exception e) {
Debug.Fail(e.ToString());
}
catch (Exception e) {
Debug.Fail(e.ToString());
}
+#if !DISABLE_CAS_USE
finally {
CodeAccessPermission.RevertAssert();
}
finally {
CodeAccessPermission.RevertAssert();
}
-
+#endif
return result;
}
}
return result;
}
}
diff --git
a/mcs/class/referencesource/System/compmod/system/diagnostics/Trace.cs
b/mcs/class/referencesource/System/compmod/system/diagnostics/Trace.cs
index 9d9a20aac1cbcc292856348d74e8cd868e59f233..2f9df3f456471c22dc435a3cf5a2d82561034d11 100644
(file)
--- a/
mcs/class/referencesource/System/compmod/system/diagnostics/Trace.cs
+++ b/
mcs/class/referencesource/System/compmod/system/diagnostics/Trace.cs
@@
-30,9
+30,10
@@
namespace System.Diagnostics {
public static TraceListenerCollection Listeners {
[HostProtection(SharedState=true)]
get {
public static TraceListenerCollection Listeners {
[HostProtection(SharedState=true)]
get {
+#if !DISABLE_CAS_USE
// Do a full damand
new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();
// Do a full damand
new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();
-
+#endif
return TraceInternal.Listeners;
}
}
return TraceInternal.Listeners;
}
}
@@
-112,9
+113,10
@@
namespace System.Diagnostics {
/// </devdoc>
[System.Diagnostics.Conditional("TRACE")]
public static void Close() {
/// </devdoc>
[System.Diagnostics.Conditional("TRACE")]
public static void Close() {
+#if !DISABLE_CAS_USE
// Do a full damand
new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();
// Do a full damand
new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();
-
+ #endif
TraceInternal.Close();
}
TraceInternal.Close();
}
diff --git
a/mcs/class/referencesource/System/compmod/system/diagnostics/TraceEventCache.cs
b/mcs/class/referencesource/System/compmod/system/diagnostics/TraceEventCache.cs
index 42724de13b1be002843f8a38728a7999391235ec..eee1e05c12539e977e6903810feac7eaf6ac9b7c 100644
(file)
--- a/
mcs/class/referencesource/System/compmod/system/diagnostics/TraceEventCache.cs
+++ b/
mcs/class/referencesource/System/compmod/system/diagnostics/TraceEventCache.cs
@@
-30,9
+30,10
@@
namespace System.Diagnostics {
get {
if (stackTrace == null)
stackTrace = Environment.StackTrace;
get {
if (stackTrace == null)
stackTrace = Environment.StackTrace;
+#if !DISABLE_CAS_USE
else
new EnvironmentPermission(PermissionState.Unrestricted).Demand();
else
new EnvironmentPermission(PermissionState.Unrestricted).Demand();
-
+#endif
return stackTrace;
}
}
return stackTrace;
}
}
@@
-76,9
+77,10
@@
namespace System.Diagnostics {
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
private static void InitProcessInfo() {
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
private static void InitProcessInfo() {
+#if !DISABLE_CAS_USE
// Demand unmanaged code permission
new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();
// Demand unmanaged code permission
new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();
-
+#endif
if (processName == null) {
Process p = Process.GetCurrentProcess();
try {
if (processName == null) {
Process p = Process.GetCurrentProcess();
try {
diff --git
a/mcs/class/referencesource/System/compmod/system/diagnostics/TraceInternal.cs
b/mcs/class/referencesource/System/compmod/system/diagnostics/TraceInternal.cs
index 6890780312993d035f3523352751a6227bb17c4b..42bbb8a75c0849dfb6c45f493295a3748e0fd5bf 100644
(file)
--- a/
mcs/class/referencesource/System/compmod/system/diagnostics/TraceInternal.cs
+++ b/
mcs/class/referencesource/System/compmod/system/diagnostics/TraceInternal.cs
@@
-62,7
+62,9
@@
namespace System.Diagnostics {
internal static string AppName {
get {
if (appName == null) {
internal static string AppName {
get {
if (appName == null) {
+#if !DISABLE_CAS_USE
new EnvironmentPermission(EnvironmentPermissionAccess.Read, "Path").Assert();
new EnvironmentPermission(EnvironmentPermissionAccess.Read, "Path").Assert();
+#endif
appName = Path.GetFileName(Environment.GetCommandLineArgs()[0]);
}
return appName;
appName = Path.GetFileName(Environment.GetCommandLineArgs()[0]);
}
return appName;