VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/Library/CommonLib/EfiMem.c
diff options
context:
space:
mode:
authorMounir IDRASSI <mounir.idrassi@idrix.fr>2019-03-21 20:58:50 +0100
committerMounir IDRASSI <mounir.idrassi@idrix.fr>2019-03-21 20:58:50 +0100
commitecb29e3b3f1a67800922a79c009e80a0eb45ef91 (patch)
treeab11de4eee82bb48fa25314d74197847294010db /Library/CommonLib/EfiMem.c
parent4922daee362adf600fd19f91aa11cc603d8d17e1 (diff)
downloadVeraCrypt-DCS-ecb29e3b3f1a67800922a79c009e80a0eb45ef91.tar.gz
VeraCrypt-DCS-ecb29e3b3f1a67800922a79c009e80a0eb45ef91.zip
Enhance Rescue Disk implementation of restoring VeraCrypt loader.
Diffstat (limited to 'Library/CommonLib/EfiMem.c')
-rw-r--r--Library/CommonLib/EfiMem.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/Library/CommonLib/EfiMem.c b/Library/CommonLib/EfiMem.c
index d9386c0..872d3de 100644
--- a/Library/CommonLib/EfiMem.c
+++ b/Library/CommonLib/EfiMem.c
@@ -72,3 +72,30 @@ PrepareMemory(
*mem = buf;
return status;
}
+
+//////////////////////////////////////////////////////////////////////////
+// Memory misc
+//////////////////////////////////////////////////////////////////////////
+EFI_STATUS MemoryHasPattern (
+ CONST VOID* buffer,
+ UINTN bufferLen,
+ CONST VOID* pattern,
+ UINTN patternLen)
+{
+ EFI_STATUS status = EFI_NOT_FOUND;
+ if (patternLen <= bufferLen)
+ {
+ UINTN i;
+ CONST UINT8* memPtr = (CONST UINT8*) buffer;
+ for (i = 0; i <= (bufferLen - patternLen); ++i)
+ {
+ if (CompareMem (&memPtr[i], pattern, patternLen) == 0)
+ {
+ status = EFI_SUCCESS;
+ break;
+ }
+ }
+ }
+
+ return status;
+}