Skip to content

Commit 5cdd36c

Browse files
committed
move all comparable name checks into Name property
1 parent c794c3f commit 5cdd36c

File tree

2 files changed

+18
-19
lines changed

2 files changed

+18
-19
lines changed

FlashpointSecurePlayer/RegistryStates.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1544,11 +1544,10 @@ private void ModificationAdded(RegistryTraceData registryTraceData) {
15441544
//if (!modificationsElement.ElementInformation.IsPresent) {
15451545
//return;
15461546
//}
1547-
1548-
// comparable names, since registry key/value names shouldn't have null bytes in them according to Win32
1547+
15491548
RegistryStateElement registryStateElement = new RegistryStateElement {
1550-
KeyName = GetComparableName(registryTraceData.KeyName),
1551-
ValueName = GetComparableName(registryTraceData.ValueName)
1549+
KeyName = registryTraceData.KeyName,
1550+
ValueName = registryTraceData.ValueName
15521551
};
15531552

15541553
// KeyHandle is meant to be a uint32, so we discard the rest
@@ -1741,8 +1740,8 @@ private void ModificationRemoved(RegistryTraceData registryTraceData) {
17411740

17421741
// create filler element to get name
17431742
RegistryStateElement registryStateElement = new RegistryStateElement {
1744-
KeyName = GetComparableName(registryTraceData.KeyName),
1745-
ValueName = GetComparableName(registryTraceData.ValueName)
1743+
KeyName = registryTraceData.KeyName,
1744+
ValueName = registryTraceData.ValueName
17461745
};
17471746

17481747
ulong safeKeyHandle = registryTraceData.KeyHandle & 0x00000000FFFFFFFF;
@@ -1796,7 +1795,7 @@ private void KCBStarted(RegistryTraceData registryTraceData) {
17961795
kcbModificationKeyNames = new Dictionary<ulong, string>();
17971796
}
17981797

1799-
kcbModificationKeyNames[safeKeyHandle] = GetComparableName(registryTraceData.KeyName);
1798+
kcbModificationKeyNames[safeKeyHandle] = registryTraceData.KeyName;
18001799
}
18011800

18021801
private void KCBStopped(RegistryTraceData registryTraceData) {
@@ -1855,7 +1854,7 @@ private void KCBStopped(RegistryTraceData registryTraceData) {
18551854
registryStateElement = registryStateElements[j];
18561855

18571856
keyName = GetRedirectedKeyValueName(
1858-
GetKeyValueNameFromKernelRegistryString(GetComparableName(registryTraceData.KeyName) + "\\" + registryStateElement.KeyName),
1857+
GetKeyValueNameFromKernelRegistryString(registryTraceData.KeyName + "\\" + registryStateElement.KeyName),
18591858
modificationsElement.RegistryStates.BinaryType
18601859
);
18611860

FlashpointSecurePlayer/Shared.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -977,6 +977,15 @@ public static HttpClient HttpClient {
977977
// (preferably, no more than eight at a time)
978978
private static SemaphoreSlim downloadSemaphoreSlim = new SemaphoreSlim(1, 1);
979979

980+
public static string GetComparableName(string name) {
981+
if (name == null) {
982+
return name;
983+
}
984+
985+
int comparableNameLength = name.IndexOf('\0');
986+
return comparableNameLength == -1 ? name : name.Substring(0, comparableNameLength);
987+
}
988+
980989
// it'd be nice to move all the configuration, template, section stuff to their own class one day
981990
// http://social.msdn.microsoft.com/Forums/vstudio/en-US/0f3557ee-16bd-4a36-a4f3-00efbeae9b0d/app-config-multiple-sections-in-sectiongroup-with-same-name?forum=csharpgeneral
982991
private static FlashpointSecurePlayerSection flashpointSecurePlayerSection = null;
@@ -1640,13 +1649,13 @@ public string _ValueExpanded {
16401649
// delimiter for a primary key (value names can contain them)
16411650
public string Name {
16421651
get {
1643-
string keyName = KeyName;
1652+
string keyName = GetComparableName(KeyName);
16441653

16451654
if (!String.IsNullOrEmpty(keyName)) {
16461655
keyName = keyName.ToUpperInvariant();
16471656
}
16481657

1649-
string valueName = ValueName;
1658+
string valueName = GetComparableName(ValueName);
16501659

16511660
if (!String.IsNullOrEmpty(valueName)) {
16521661
valueName = valueName.ToUpperInvariant();
@@ -2054,15 +2063,6 @@ public string this[string shortPath] {
20542063
public PathNamesLong Long { get; } = new PathNamesLong();
20552064
}
20562065

2057-
public static string GetComparableName(string name) {
2058-
if (name == null) {
2059-
return name;
2060-
}
2061-
2062-
int comparableNameLength = name.IndexOf('\0');
2063-
return comparableNameLength == -1 ? name : name.Substring(0, comparableNameLength);
2064-
}
2065-
20662066
public static string GetEnvironmentVariablePreference(List<string> names) {
20672067
string preferenceString = null;
20682068

0 commit comments

Comments
 (0)