From 51088d231d73cbe14516d553e97237e7f5a4f147 Mon Sep 17 00:00:00 2001 From: kavsrf Date: Sun, 19 Mar 2017 17:05:02 +0300 Subject: os hide prepare option --- Library/CommonLib/EfiConsole.c | 15 ++++++++++++--- Library/DcsCfgLib/GptEdit.c | 23 +++++++++++++---------- 2 files changed, 25 insertions(+), 13 deletions(-) (limited to 'Library') diff --git a/Library/CommonLib/EfiConsole.c b/Library/CommonLib/EfiConsole.c index 63b32ae..3ab1515 100644 --- a/Library/CommonLib/EfiConsole.c +++ b/Library/CommonLib/EfiConsole.c @@ -204,11 +204,20 @@ AskAsciiString( CHAR8* prompt, CHAR8* str, UINTN max_len, - UINT8 visible) + UINT8 visible, + CHAR8* defStr) { UINTN len = 0; - OUT_PRINT(L"%a", prompt); - GetLine(&len, NULL, str, max_len, visible); + if (defStr == NULL) { + OUT_PRINT(L"%a", prompt); + } else { + OUT_PRINT(L"[%a] %a", defStr, prompt); + } + GetLine(&len, NULL, str, max_len, visible); + if (defStr != NULL && len == 0) { + AsciiStrCpyS(str, max_len, defStr); + len = AsciiStrLen(str); + } return (UINT32)len; } diff --git a/Library/DcsCfgLib/GptEdit.c b/Library/DcsCfgLib/GptEdit.c index 28d2160..bae8f1e 100644 --- a/Library/DcsCfgLib/GptEdit.c +++ b/Library/DcsCfgLib/GptEdit.c @@ -33,7 +33,7 @@ UINT64 gDcsDiskEntryPwdCacheID = DCS_DEP_PWD_CACHE_SIGN; DCS_DISK_ENTRY_LIST *DeList = NULL; -UINT8 *CryptoHeader = NULL; +UINT8 *DeCryptoHeader = NULL; EFI_PARTITION_TABLE_HEADER *GptMainHdr = NULL; EFI_PARTITION_ENTRY *GptMainEntrys = NULL; @@ -131,15 +131,15 @@ GptLoadFromDisk( goto error; } - CryptoHeader = MEM_ALLOC(512); - if (CryptoHeader == NULL) { + DeCryptoHeader = MEM_ALLOC(512); + if (DeCryptoHeader == NULL) { ERR_PRINT(L"Can't alloc CryptoHeader\n"); res = EFI_BUFFER_TOO_SMALL; goto error; } // Load disk IDs - res = BlockIo->ReadBlocks(BlockIo, BlockIo->Media->MediaId, 0, 512, CryptoHeader); + res = BlockIo->ReadBlocks(BlockIo, BlockIo->Media->MediaId, 0, 512, DeCryptoHeader); if (EFI_ERROR(res)) { ERR_PRINT(L"Can't MBR \n"); goto error; @@ -147,11 +147,11 @@ GptLoadFromDisk( SetMem(&DeDiskId, sizeof(DeDiskId), 0); DeDiskId.Type = DE_DISKID; - CopyMem(&DeDiskId.MbrID, &CryptoHeader[0x1b8], sizeof(DiskIdMbr)); + CopyMem(&DeDiskId.MbrID, &DeCryptoHeader[0x1b8], sizeof(DiskIdMbr)); CopyMem(&DeDiskId.GptID, &GptMainHdr->DiskGUID, sizeof(DiskIdGpt)); // Load crypto header - res = BlockIo->ReadBlocks(BlockIo, BlockIo->Media->MediaId, 62, 512, CryptoHeader); + res = BlockIo->ReadBlocks(BlockIo, BlockIo->Media->MediaId, 62, 512, DeCryptoHeader); if (EFI_ERROR(res)) { ERR_PRINT(L"Can't read CryptoHeader\n"); goto error; @@ -176,7 +176,7 @@ error: MEM_FREE(GptMainEntrys); MEM_FREE(GptAltHdr); MEM_FREE(GptAltEntrys); - MEM_FREE(CryptoHeader); + MEM_FREE(DeCryptoHeader); return res; } @@ -233,7 +233,7 @@ DeListSaveToFile() { DeList->Count = DE_IDX_TOTAL; Offset = 0; - DeList_UPDATE_BEGIN(CryptoHeader, DE_Sectors, DE_IDX_CRYPTOHEADER, 512) + DeList_UPDATE_BEGIN(DeCryptoHeader, DE_Sectors, DE_IDX_CRYPTOHEADER, 512) DeList->DE[DE_IDX_CRYPTOHEADER].Sectors.Start = 62 * 512; DeList_UPDATE_END @@ -339,7 +339,7 @@ DeListParseSaved( ) { EFI_STATUS res = EFI_SUCCESS; - CryptoHeader = DeBuffer; + DeCryptoHeader = DeBuffer; DeList = (DCS_DISK_ENTRY_LIST*)(DeBuffer + 512); CopyMem(&DeDiskId, &DeList->DE[DE_IDX_DISKID], sizeof(DeDiskId)); @@ -483,7 +483,7 @@ DeListApplySectorsToDisk( res = BlockIo->WriteBlocks(BlockIo, BlockIo->Media->MediaId, DeList->DE[i].Sectors.Start >> 9, (UINTN)DeList->DE[i].Sectors.Length, - CryptoHeader + DeList->DE[i].Sectors.Offset); + DeCryptoHeader + DeList->DE[i].Sectors.Offset); } if (EFI_ERROR(res)) { ERR_PRINT(L"Write: %r\n", res); @@ -599,6 +599,9 @@ GptHideParts() { GptSqueze(); GptSort(); GptSyncMainAlt(); + if (DeCryptoHeader != NULL) { + SetMem(DeCryptoHeader, 512, 0); + } } BOOLEAN -- cgit v1.2.3