gboolean
mono_public_tokens_are_equal (const unsigned char *pubt1, const unsigned char *pubt2)
{
- return memcmp (pubt1, pubt2, 16) == 0;
+ return g_ascii_strncasecmp ((const char*) pubt1, (const char*) pubt2, 16) == 0;
}
/**
while (g_ascii_isspace (*p))
p++;
while (*p) {
- if (*p == 'V' && g_ascii_strncasecmp (p, "Version=", 8) == 0) {
+ if ((*p == 'V' || *p == 'v') && g_ascii_strncasecmp (p, "Version=", 8) == 0) {
p += 8;
assembly->major = strtoul (p, &s, 10);
if (s == p || *s != '.')
if (s == p)
return 1;
p = s;
- } else if (*p == 'C' && g_ascii_strncasecmp (p, "Culture=", 8) == 0) {
+ } else if ((*p == 'C' || *p == 'c') && g_ascii_strncasecmp (p, "Culture=", 8) == 0) {
p += 8;
if (g_ascii_strncasecmp (p, "neutral", 7) == 0) {
assembly->culture = "";
p++;
}
}
- } else if (*p == 'P' && g_ascii_strncasecmp (p, "PublicKeyToken=", 15) == 0) {
+ } else if ((*p == 'P' || *p == 'p') && g_ascii_strncasecmp (p, "PublicKeyToken=", 15) == 0) {
p += 15;
if (strncmp (p, "null", 4) == 0) {
p += 4;
len = (p - start + 1);
if (len > MONO_PUBLIC_KEY_TOKEN_LENGTH)
len = MONO_PUBLIC_KEY_TOKEN_LENGTH;
- g_strlcpy ((char*)assembly->public_key_token, start, len);
+ char* pkt_lower = g_ascii_strdown (start, len);
+ g_strlcpy ((char*) assembly->public_key_token, pkt_lower, len);
+ g_free (pkt_lower);
}
} else {
while (*p && *p != ',')
# https://github.com/mono/mono/issues/15076
-nomethod System.Reflection.Tests.AssemblyTests.LoadFrom_SameIdentityAsAssemblyWithDifferentPath_ReturnsEqualAssemblies
-# throws a NRE
-# https://github.com/mono/mono/issues/15077
--nomethod System.Reflection.Tests.GetTypeTests.GetType
# Assertion expects false, but we return true
# https://github.com/mono/mono/issues/15080