SecurityPkg/SecureBootConfigDxe: Declare EFIAPI for the ChooseFile handlers

The SecureBootConfig now uses ChooseFile() from FileExplorerLib
to select the certificates to be enrolled into PK, KEK, DB, DBX,
or DBT, and the corresponding handlers to get the content of the
file. Per the definition of CHOOSE_HANDLER, the handler must use
EFIAPI as the calling convention. However, the calling convention
was not specified the following handlers: UpdatePKFromFile(),
UpdateKEKFromFile(), UpdateDBFromFile(), UpdateDBXFromFile(), and
UpdateDBTFromFile(). When compiling the firmware with gcc, the
default calling convention is not compatible with EFIAPI, so the
handlers interpreted the argument the wrong way and passed the
wrong device path to UpdatePage(), and the system crashed when
the user tried to enroll a certificate into the key database.

This commit specifies the calling convention for those functions
so that gcc can generate the right code.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Dandan Bi <dandan.bi@intel.com>
This commit is contained in:
Gary Lin 2016-03-21 17:04:36 +08:00 committed by Laszlo Ersek
parent e36ed7a84b
commit bac308be0c
2 changed files with 10 additions and 0 deletions

View File

@ -343,6 +343,7 @@ UpdatePage(
@retval FALSE Not exit caller function.
**/
BOOLEAN
EFIAPI
UpdatePKFromFile (
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
)
@ -360,6 +361,7 @@ UpdatePKFromFile (
@retval FALSE Not exit caller function.
**/
BOOLEAN
EFIAPI
UpdateKEKFromFile (
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
)
@ -376,6 +378,7 @@ UpdateKEKFromFile (
@retval FALSE Not exit caller function.
**/
BOOLEAN
EFIAPI
UpdateDBFromFile (
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
)
@ -392,6 +395,7 @@ UpdateDBFromFile (
@retval FALSE Not exit caller function.
**/
BOOLEAN
EFIAPI
UpdateDBXFromFile (
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
)
@ -408,6 +412,7 @@ UpdateDBXFromFile (
@retval FALSE Not exit caller function.
**/
BOOLEAN
EFIAPI
UpdateDBTFromFile (
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
)

View File

@ -561,6 +561,7 @@ GuidToString (
@retval FALSE Not exit caller function.
**/
BOOLEAN
EFIAPI
UpdatePKFromFile (
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
);
@ -574,6 +575,7 @@ UpdatePKFromFile (
@retval FALSE Not exit caller function.
**/
BOOLEAN
EFIAPI
UpdateKEKFromFile (
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
);
@ -587,6 +589,7 @@ UpdateKEKFromFile (
@retval FALSE Not exit caller function.
**/
BOOLEAN
EFIAPI
UpdateDBFromFile (
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
);
@ -600,6 +603,7 @@ UpdateDBFromFile (
@retval FALSE Not exit caller function.
**/
BOOLEAN
EFIAPI
UpdateDBXFromFile (
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
);
@ -613,6 +617,7 @@ UpdateDBXFromFile (
@retval FALSE Not exit caller function.
**/
BOOLEAN
EFIAPI
UpdateDBTFromFile (
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
);