Changeset 99404 in vbox for trunk/src/VBox/Devices/EFI/FirmwareNew/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrFileUtil.c
- Timestamp:
- Apr 14, 2023 3:17:44 PM (22 months ago)
- Location:
- trunk/src/VBox/Devices/EFI/FirmwareNew
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/EFI/FirmwareNew
-
Property svn:mergeinfo
changed from (toggle deleted branches)
to (toggle deleted branches)/vendor/edk2/current 103735-103757,103769-103776,129194-145445 /vendor/edk2/current 103735-103757,103769-103776,129194-156846
-
Property svn:mergeinfo
changed from (toggle deleted branches)
-
trunk/src/VBox/Devices/EFI/FirmwareNew/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrFileUtil.c
r80721 r99404 10 10 #include "WifiConnectionMgrFileUtil.h" 11 11 12 CHAR16 *mDerPemEncodedSuffix[] = {12 CHAR16 *mDerPemEncodedSuffix[] = { 13 13 L".cer", 14 14 L".der", … … 29 29 BOOLEAN 30 30 IsDerPemEncodeCertificate ( 31 IN CONST CHAR16 *FileSuffix 32 ) 33 { 34 UINTN Index; 31 IN CONST CHAR16 *FileSuffix 32 ) 33 { 34 UINTN Index; 35 35 36 for (Index = 0; mDerPemEncodedSuffix[Index] != NULL; Index++) { 36 37 if (StrCmp (FileSuffix, mDerPemEncodedSuffix[Index]) == 0) { … … 38 39 } 39 40 } 41 40 42 return FALSE; 41 43 } … … 59 61 EFI_STATUS 60 62 ReadFileContent ( 61 IN EFI_FILE_HANDLE 62 IN OUT VOID 63 OUT UINTN*FileSize,64 IN UINTN 65 ) 66 { 67 UINTN BufferSize;68 UINT64 SourceFileSize;69 VOID *Buffer;70 EFI_STATUS Status;63 IN EFI_FILE_HANDLE FileHandle, 64 IN OUT VOID **BufferPtr, 65 OUT UINTN *FileSize, 66 IN UINTN AddtionAllocateSize 67 ) 68 { 69 UINTN BufferSize; 70 UINT64 SourceFileSize; 71 VOID *Buffer; 72 EFI_STATUS Status; 71 73 72 74 if ((FileHandle == NULL) || (FileSize == NULL)) { … … 79 81 // Get the file size 80 82 // 81 Status = FileHandle->SetPosition (FileHandle, (UINT64) 83 Status = FileHandle->SetPosition (FileHandle, (UINT64)-1); 82 84 if (EFI_ERROR (Status)) { 83 85 goto ON_EXIT; … … 94 96 } 95 97 96 BufferSize = (UINTN) 97 Buffer = AllocateZeroPool(BufferSize);98 BufferSize = (UINTN)SourceFileSize + AddtionAllocateSize; 99 Buffer = AllocateZeroPool (BufferSize); 98 100 if (Buffer == NULL) { 99 101 return EFI_OUT_OF_RESOURCES; 100 102 } 101 103 102 BufferSize = (UINTN) 104 BufferSize = (UINTN)SourceFileSize; 103 105 *FileSize = BufferSize; 104 106 105 107 Status = FileHandle->Read (FileHandle, &BufferSize, Buffer); 106 if (EFI_ERROR (Status) || BufferSize != *FileSize) {108 if (EFI_ERROR (Status) || (BufferSize != *FileSize)) { 107 109 FreePool (Buffer); 108 110 Buffer = NULL; 109 Status 111 Status = EFI_BAD_BUFFER_SIZE; 110 112 goto ON_EXIT; 111 113 } … … 128 130 EFIAPI 129 131 DevicePathToStr ( 130 IN EFI_DEVICE_PATH_PROTOCOL 132 IN EFI_DEVICE_PATH_PROTOCOL *DevPath 131 133 ) 132 134 { … … 151 153 CHAR16 * 152 154 ExtractFileNameFromDevicePath ( 153 IN EFI_DEVICE_PATH_PROTOCOL 154 ) 155 { 156 CHAR16 157 CHAR16 158 CHAR16 159 CHAR16 160 UINTN 161 162 ASSERT (DevicePath != NULL);163 164 String = DevicePathToStr (DevicePath);155 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath 156 ) 157 { 158 CHAR16 *String; 159 CHAR16 *MatchString; 160 CHAR16 *LastMatch; 161 CHAR16 *FileName; 162 UINTN Length; 163 164 ASSERT (DevicePath != NULL); 165 166 String = DevicePathToStr (DevicePath); 165 167 if (String == NULL) { 166 168 return NULL; 167 169 } 170 168 171 MatchString = String; 169 172 LastMatch = String; 170 173 FileName = NULL; 171 174 172 while (MatchString != NULL){175 while (MatchString != NULL) { 173 176 LastMatch = MatchString + 1; 174 MatchString = StrStr (LastMatch,L"\\");175 } 176 177 Length = StrLen(LastMatch);178 FileName = AllocateCopyPool ((Length + 1) * sizeof (CHAR16), LastMatch);177 MatchString = StrStr (LastMatch, L"\\"); 178 } 179 180 Length = StrLen (LastMatch); 181 FileName = AllocateCopyPool ((Length + 1) * sizeof (CHAR16), LastMatch); 179 182 if (FileName != NULL) { 180 183 *(FileName + Length) = 0; 181 184 } 182 185 183 FreePool (String);186 FreePool (String); 184 187 185 188 return FileName; … … 198 201 **/ 199 202 BOOLEAN 200 UpdatePage (201 IN WIFI_MGR_PRIVATE_DATA 202 IN EFI_DEVICE_PATH_PROTOCOL 203 IN EFI_FORM_ID 204 ) 205 { 206 CHAR16 207 EFI_STATUS 203 UpdatePage ( 204 IN WIFI_MGR_PRIVATE_DATA *Private, 205 IN EFI_DEVICE_PATH_PROTOCOL *FilePath, 206 IN EFI_FORM_ID FormId 207 ) 208 { 209 CHAR16 *FileName; 210 EFI_STATUS Status; 208 211 209 212 FileName = NULL; 210 213 211 214 if (FilePath != NULL) { 212 FileName = ExtractFileNameFromDevicePath(FilePath); 213 } 215 FileName = ExtractFileNameFromDevicePath (FilePath); 216 } 217 214 218 if (FileName == NULL) { 215 219 // … … 228 232 Private->FileContext->FHandle->Close (Private->FileContext->FHandle); 229 233 } 234 230 235 Private->FileContext->FHandle = NULL; 231 236 … … 238 243 if (EFI_ERROR (Status)) { 239 244 if (FormId == FORMID_ENROLL_CERT) { 240 HiiSetString (Private->RegisteredHandle, 241 STRING_TOKEN (STR_EAP_ENROLLED_CERT_NAME), L"", NULL); 242 } else if (FormId == FORMID_ENROLL_PRIVATE_KEY){ 243 HiiSetString (Private->RegisteredHandle, 244 STRING_TOKEN (STR_EAP_ENROLLED_PRIVATE_KEY_NAME), L"", NULL); 245 HiiSetString ( 246 Private->RegisteredHandle, 247 STRING_TOKEN (STR_EAP_ENROLLED_CERT_NAME), 248 L"", 249 NULL 250 ); 251 } else if (FormId == FORMID_ENROLL_PRIVATE_KEY) { 252 HiiSetString ( 253 Private->RegisteredHandle, 254 STRING_TOKEN (STR_EAP_ENROLLED_PRIVATE_KEY_NAME), 255 L"", 256 NULL 257 ); 245 258 } 246 259 } else { 247 248 260 if (Private->FileContext->FileName != NULL) { 249 261 FreePool (Private->FileContext->FileName); 250 262 Private->FileContext->FileName = NULL; 251 263 } 264 252 265 Private->FileContext->FileName = FileName; 253 266 254 267 if (FormId == FORMID_ENROLL_CERT) { 255 HiiSetString (Private->RegisteredHandle, 256 STRING_TOKEN (STR_EAP_ENROLLED_CERT_NAME), FileName, NULL); 257 } else if (FormId == FORMID_ENROLL_PRIVATE_KEY){ 258 HiiSetString (Private->RegisteredHandle, 259 STRING_TOKEN (STR_EAP_ENROLLED_PRIVATE_KEY_NAME), FileName, NULL); 268 HiiSetString ( 269 Private->RegisteredHandle, 270 STRING_TOKEN (STR_EAP_ENROLLED_CERT_NAME), 271 FileName, 272 NULL 273 ); 274 } else if (FormId == FORMID_ENROLL_PRIVATE_KEY) { 275 HiiSetString ( 276 Private->RegisteredHandle, 277 STRING_TOKEN (STR_EAP_ENROLLED_PRIVATE_KEY_NAME), 278 FileName, 279 NULL 280 ); 260 281 } 261 282 } … … 276 297 BOOLEAN 277 298 UpdateCAFromFile ( 278 IN WIFI_MGR_PRIVATE_DATA 279 IN EFI_DEVICE_PATH_PROTOCOL 280 ) 281 { 282 return UpdatePage (Private, FilePath, FORMID_ENROLL_CERT);299 IN WIFI_MGR_PRIVATE_DATA *Private, 300 IN EFI_DEVICE_PATH_PROTOCOL *FilePath 301 ) 302 { 303 return UpdatePage (Private, FilePath, FORMID_ENROLL_CERT); 283 304 } 284 305 … … 295 316 BOOLEAN 296 317 UpdatePrivateKeyFromFile ( 297 IN WIFI_MGR_PRIVATE_DATA *Private, 298 IN EFI_DEVICE_PATH_PROTOCOL *FilePath 299 ) 300 { 301 return UpdatePage(Private, FilePath, FORMID_ENROLL_PRIVATE_KEY); 302 } 303 318 IN WIFI_MGR_PRIVATE_DATA *Private, 319 IN EFI_DEVICE_PATH_PROTOCOL *FilePath 320 ) 321 { 322 return UpdatePage (Private, FilePath, FORMID_ENROLL_PRIVATE_KEY); 323 }
Note:
See TracChangeset
for help on using the changeset viewer.