Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit

Permalink
Move the SecuritySafeCritical attributes to EncodingForwarder
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesqo committed Jul 5, 2016
1 parent a4192dc commit a64020c
Show file tree
Hide file tree
Showing 7 changed files with 12 additions and 42 deletions.
7 changes: 0 additions & 7 deletions src/mscorlib/src/System/Text/ASCIIEncoding.cs
Original file line number Diff line number Diff line change
Expand Up @@ -57,13 +57,11 @@ internal override void SetDefaultFallbacks()
// Returns the number of bytes required to encode a range of characters in
// a character array.

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetByteCount(char[] chars, int index, int count)
{
return EncodingForwarder.GetByteCount(this, chars, index, count);
}

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetByteCount(String chars)
{
return EncodingForwarder.GetByteCount(this, chars);
Expand All @@ -77,7 +75,6 @@ public override unsafe int GetByteCount(char* chars, int count)
return EncodingForwarder.GetByteCount(this, chars, count);
}

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetBytes(String chars, int charIndex, int charCount,
byte[] bytes, int byteIndex)
{
Expand All @@ -93,7 +90,6 @@ public override int GetBytes(String chars, int charIndex, int charCount,
// determine the maximum number of bytes that will be produced for a given
// number of characters, regardless of the actual character values.

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetBytes(char[] chars, int charIndex, int charCount,
byte[] bytes, int byteIndex)
{
Expand All @@ -111,7 +107,6 @@ public override unsafe int GetBytes(char* chars, int charCount, byte* bytes, int
// Returns the number of characters produced by decoding a range of bytes
// in a byte array.

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetCharCount(byte[] bytes, int index, int count)
{
return EncodingForwarder.GetCharCount(this, bytes, index, count);
Expand All @@ -125,7 +120,6 @@ public override unsafe int GetCharCount(byte* bytes, int count)
return EncodingForwarder.GetCharCount(this, bytes, count);
}

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetChars(byte[] bytes, int byteIndex, int byteCount,
char[] chars, int charIndex)
{
Expand All @@ -143,7 +137,6 @@ public unsafe override int GetChars(byte* bytes, int byteCount, char* chars, int
// Returns a string containing the decoded representation of a range of
// bytes in a byte array.

[System.Security.SecuritySafeCritical] // auto-generated
public override String GetString(byte[] bytes, int byteIndex, int byteCount)
{
return EncodingForwarder.GetString(this, bytes, byteIndex, byteCount);
Expand Down
12 changes: 12 additions & 0 deletions src/mscorlib/src/System/Text/EncodingForwarder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
// See the LICENSE file in the project root for more information.

using System.Diagnostics.Contracts;
using System.Security;

namespace System.Text
{
Expand Down Expand Up @@ -30,6 +31,7 @@ internal static class EncodingForwarder
// the parameter, it will call the same method again, which will eventually
// lead to a StackOverflowException.

[SecuritySafeCritical]
public unsafe static int GetByteCount(Encoding encoding, char[] chars, int index, int count)
{
// Validate parameters
Expand Down Expand Up @@ -58,6 +60,7 @@ public unsafe static int GetByteCount(Encoding encoding, char[] chars, int index
return encoding.GetByteCount(pChars + index, count, encoder: null);
}

[SecuritySafeCritical]
public unsafe static int GetByteCount(Encoding encoding, string s)
{
Contract.Assert(encoding != null);
Expand All @@ -81,6 +84,7 @@ public unsafe static int GetByteCount(Encoding encoding, string s)
return encoding.GetByteCount(pChars, s.Length, encoder: null);
}

[SecurityCritical]
public unsafe static int GetByteCount(Encoding encoding, char* chars, int count)
{
Contract.Assert(encoding != null);
Expand All @@ -98,6 +102,7 @@ public unsafe static int GetByteCount(Encoding encoding, char* chars, int count)
return encoding.GetByteCount(chars, count, encoder: null);
}

[SecuritySafeCritical]
public unsafe static int GetBytes(Encoding encoding, string s, int charIndex, int charCount, byte[] bytes, int byteIndex)
{
Contract.Assert(encoding != null);
Expand Down Expand Up @@ -137,6 +142,7 @@ public unsafe static int GetBytes(Encoding encoding, string s, int charIndex, in
}
}

[SecuritySafeCritical]
public unsafe static int GetBytes(Encoding encoding, char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex)
{
Contract.Assert(encoding != null);
Expand Down Expand Up @@ -177,6 +183,7 @@ public unsafe static int GetBytes(Encoding encoding, char[] chars, int charIndex
}
}

[SecurityCritical]
public unsafe static int GetBytes(Encoding encoding, char* chars, int charCount, byte* bytes, int byteCount)
{
Contract.Assert(encoding != null);
Expand All @@ -193,6 +200,7 @@ public unsafe static int GetBytes(Encoding encoding, char* chars, int charCount,
return encoding.GetBytes(chars, charCount, bytes, byteCount, encoder: null);
}

[SecuritySafeCritical]
public unsafe static int GetCharCount(Encoding encoding, byte[] bytes, int index, int count)
{
Contract.Assert(encoding != null);
Expand All @@ -219,6 +227,7 @@ public unsafe static int GetCharCount(Encoding encoding, byte[] bytes, int index
return encoding.GetCharCount(pBytes + index, count, decoder: null);
}

[SecurityCritical]
public unsafe static int GetCharCount(Encoding encoding, byte* bytes, int count)
{
Contract.Assert(encoding != null);
Expand All @@ -235,6 +244,7 @@ public unsafe static int GetCharCount(Encoding encoding, byte* bytes, int count)
return encoding.GetCharCount(bytes, count, decoder: null);
}

[SecuritySafeCritical]
public unsafe static int GetChars(Encoding encoding, byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex)
{
Contract.Assert(encoding != null);
Expand Down Expand Up @@ -273,6 +283,7 @@ public unsafe static int GetChars(Encoding encoding, byte[] bytes, int byteIndex
}
}

[SecurityCritical]
public unsafe static int GetChars(Encoding encoding, byte* bytes, int byteCount, char* chars, int charCount)
{
Contract.Assert(encoding != null);
Expand All @@ -289,6 +300,7 @@ public unsafe static int GetChars(Encoding encoding, byte* bytes, int byteCount,
return encoding.GetChars(bytes, byteCount, chars, charCount, decoder: null);
}

[SecuritySafeCritical]
public unsafe static string GetString(Encoding encoding, byte[] bytes, int index, int count)
{
Contract.Assert(encoding != null);
Expand Down
7 changes: 0 additions & 7 deletions src/mscorlib/src/System/Text/EncodingNLS.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,11 @@ protected EncodingNLS(int codePage) : base(codePage)
// Returns the number of bytes required to encode a range of characters in
// a character array.

[System.Security.SecuritySafeCritical] // overrides public transparent member
public override int GetByteCount(char[] chars, int index, int count)
{
return EncodingForwarder.GetByteCount(this, chars, index, count);
}

[System.Security.SecuritySafeCritical] // overrides public transparent member
public override int GetByteCount(String s)
{
return EncodingForwarder.GetByteCount(this, s);
Expand All @@ -58,7 +56,6 @@ public override unsafe int GetByteCount(char* chars, int count)
return EncodingForwarder.GetByteCount(this, chars, count);
}

[System.Security.SecuritySafeCritical] // overrides public transparent member
public override int GetBytes(String s, int charIndex, int charCount,
byte[] bytes, int byteIndex)
{
Expand All @@ -74,7 +71,6 @@ public override int GetBytes(String s, int charIndex, int charCount,
// determine the maximum number of bytes that will be produced for a given
// number of characters, regardless of the actual character values.

[System.Security.SecuritySafeCritical] // overrides public transparent member
public override int GetBytes(char[] chars, int charIndex, int charCount,
byte[] bytes, int byteIndex)
{
Expand All @@ -90,7 +86,6 @@ public override unsafe int GetBytes(char* chars, int charCount, byte* bytes, int
// Returns the number of characters produced by decoding a range of bytes
// in a byte array.

[System.Security.SecuritySafeCritical] // overrides public transparent member
public override int GetCharCount(byte[] bytes, int index, int count)
{
return EncodingForwarder.GetCharCount(this, bytes, index, count);
Expand All @@ -102,7 +97,6 @@ public override unsafe int GetCharCount(byte* bytes, int count)
return EncodingForwarder.GetCharCount(this, bytes, count);
}

[System.Security.SecuritySafeCritical] // overrides public transparent member
public override int GetChars(byte[] bytes, int byteIndex, int byteCount,
char[] chars, int charIndex)
{
Expand All @@ -118,7 +112,6 @@ public unsafe override int GetChars(byte* bytes, int byteCount, char* chars, int
// Returns a string containing the decoded representation of a range of
// bytes in a byte array.

[System.Security.SecuritySafeCritical] // overrides public transparent member
public override String GetString(byte[] bytes, int index, int count)
{
return EncodingForwarder.GetString(this, bytes, index, count);
Expand Down
7 changes: 0 additions & 7 deletions src/mscorlib/src/System/Text/UTF32Encoding.cs
Original file line number Diff line number Diff line change
Expand Up @@ -95,13 +95,11 @@ internal override void SetDefaultFallbacks()
// Returns the number of bytes required to encode a range of characters in
// a character array.

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetByteCount(char[] chars, int index, int count)
{
return EncodingForwarder.GetByteCount(this, chars, index, count);
}

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetByteCount(String s)
{
return EncodingForwarder.GetByteCount(this, s);
Expand All @@ -114,7 +112,6 @@ public override unsafe int GetByteCount(char* chars, int count)
return EncodingForwarder.GetByteCount(this, chars, count);
}

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetBytes(String s, int charIndex, int charCount,
byte[] bytes, int byteIndex)
{
Expand All @@ -130,7 +127,6 @@ public override int GetBytes(String s, int charIndex, int charCount,
// determine the maximum number of bytes that will be produced for a given
// number of characters, regardless of the actual character values.

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetBytes(char[] chars, int charIndex, int charCount,
byte[] bytes, int byteIndex)
{
Expand All @@ -147,7 +143,6 @@ public override unsafe int GetBytes(char* chars, int charCount, byte* bytes, int
// Returns the number of characters produced by decoding a range of bytes
// in a byte array.

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetCharCount(byte[] bytes, int index, int count)
{
return EncodingForwarder.GetCharCount(this, bytes, index, count);
Expand All @@ -160,7 +155,6 @@ public override unsafe int GetCharCount(byte* bytes, int count)
return EncodingForwarder.GetCharCount(this, bytes, count);
}

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetChars(byte[] bytes, int byteIndex, int byteCount,
char[] chars, int charIndex)
{
Expand All @@ -177,7 +171,6 @@ public unsafe override int GetChars(byte* bytes, int byteCount, char* chars, int
// Returns a string containing the decoded representation of a range of
// bytes in a byte array.

[System.Security.SecuritySafeCritical] // auto-generated
public override String GetString(byte[] bytes, int index, int count)
{
return EncodingForwarder.GetString(this, bytes, index, count);
Expand Down
7 changes: 0 additions & 7 deletions src/mscorlib/src/System/Text/UTF7Encoding.cs
Original file line number Diff line number Diff line change
Expand Up @@ -162,13 +162,11 @@ public override int GetHashCode()
// Returns the number of bytes required to encode a range of characters in
// a character array.

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetByteCount(char[] chars, int index, int count)
{
return EncodingForwarder.GetByteCount(this, chars, index, count);
}

[System.Security.SecuritySafeCritical] // auto-generated
[System.Runtime.InteropServices.ComVisible(false)]
public override int GetByteCount(String s)
{
Expand All @@ -183,7 +181,6 @@ public override unsafe int GetByteCount(char* chars, int count)
return EncodingForwarder.GetByteCount(this, chars, count);
}

[System.Security.SecuritySafeCritical] // auto-generated
[System.Runtime.InteropServices.ComVisible(false)]
public override int GetBytes(String s, int charIndex, int charCount,
byte[] bytes, int byteIndex)
Expand All @@ -200,7 +197,6 @@ public override int GetBytes(String s, int charIndex, int charCount,
// determine the maximum number of bytes that will be produced for a given
// number of characters, regardless of the actual character values.

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetBytes(char[] chars, int charIndex, int charCount,
byte[] bytes, int byteIndex)
{
Expand All @@ -218,7 +214,6 @@ public override unsafe int GetBytes(char* chars, int charCount, byte* bytes, int
// Returns the number of characters produced by decoding a range of bytes
// in a byte array.

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetCharCount(byte[] bytes, int index, int count)
{
return EncodingForwarder.GetCharCount(this, bytes, index, count);
Expand All @@ -232,7 +227,6 @@ public override unsafe int GetCharCount(byte* bytes, int count)
return EncodingForwarder.GetCharCount(this, bytes, count);
}

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetChars(byte[] bytes, int byteIndex, int byteCount,
char[] chars, int charIndex)
{
Expand All @@ -250,7 +244,6 @@ public unsafe override int GetChars(byte* bytes, int byteCount, char* chars, int
// Returns a string containing the decoded representation of a range of
// bytes in a byte array.

[System.Security.SecuritySafeCritical] // auto-generated
[System.Runtime.InteropServices.ComVisible(false)]
public override String GetString(byte[] bytes, int index, int count)
{
Expand Down
7 changes: 0 additions & 7 deletions src/mscorlib/src/System/Text/UTF8Encoding.cs
Original file line number Diff line number Diff line change
Expand Up @@ -115,13 +115,11 @@ internal override void SetDefaultFallbacks()
// Returns the number of bytes required to encode a range of characters in
// a character array.

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetByteCount(char[] chars, int index, int count)
{
return EncodingForwarder.GetByteCount(this, chars, index, count);
}

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetByteCount(String chars)
{
return EncodingForwarder.GetByteCount(this, chars);
Expand All @@ -135,7 +133,6 @@ public override unsafe int GetByteCount(char* chars, int count)
return EncodingForwarder.GetByteCount(this, chars, count);
}

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetBytes(String s, int charIndex, int charCount,
byte[] bytes, int byteIndex)
{
Expand All @@ -151,7 +148,6 @@ public override int GetBytes(String s, int charIndex, int charCount,
// determine the maximum number of bytes that will be produced for a given
// number of characters, regardless of the actual character values.

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetBytes(char[] chars, int charIndex, int charCount,
byte[] bytes, int byteIndex)
{
Expand All @@ -169,7 +165,6 @@ public override unsafe int GetBytes(char* chars, int charCount, byte* bytes, int
// Returns the number of characters produced by decoding a range of bytes
// in a byte array.

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetCharCount(byte[] bytes, int index, int count)
{
return EncodingForwarder.GetCharCount(this, bytes, index, count);
Expand All @@ -183,7 +178,6 @@ public override unsafe int GetCharCount(byte* bytes, int count)
return EncodingForwarder.GetCharCount(this, bytes, count);
}

[System.Security.SecuritySafeCritical] // auto-generated
public override int GetChars(byte[] bytes, int byteIndex, int byteCount,
char[] chars, int charIndex)
{
Expand All @@ -201,7 +195,6 @@ public unsafe override int GetChars(byte* bytes, int byteCount, char* chars, int
// Returns a string containing the decoded representation of a range of
// bytes in a byte array.

[System.Security.SecuritySafeCritical] // auto-generated
[System.Runtime.InteropServices.ComVisible(false)]
public override String GetString(byte[] bytes, int index, int count)
{
Expand Down
Loading

0 comments on commit a64020c

Please sign in to comment.