mirror of https://github.com/ipxe/ipxe.git
[efi] Allow passing a NULL device path to path utility functions
Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/844/head
parent
d879c8e4d9
commit
0f3ace92c6
|
@ -425,7 +425,7 @@ static int efi_local_open_resolved ( struct efi_local *local,
|
||||||
static int efi_local_open_path ( struct efi_local *local, const char *path ) {
|
static int efi_local_open_path ( struct efi_local *local, const char *path ) {
|
||||||
FILEPATH_DEVICE_PATH *fp = container_of ( efi_loaded_image->FilePath,
|
FILEPATH_DEVICE_PATH *fp = container_of ( efi_loaded_image->FilePath,
|
||||||
FILEPATH_DEVICE_PATH, Header);
|
FILEPATH_DEVICE_PATH, Header);
|
||||||
size_t fp_len = ( fp ? efi_path_len ( &fp->Header ) : 0 );
|
size_t fp_len = efi_path_len ( &fp->Header );
|
||||||
char base[ fp_len / 2 /* Cannot exceed this length */ ];
|
char base[ fp_len / 2 /* Cannot exceed this length */ ];
|
||||||
size_t remaining = sizeof ( base );
|
size_t remaining = sizeof ( base );
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
|
@ -43,12 +43,12 @@
|
||||||
/**
|
/**
|
||||||
* Find end of device path
|
* Find end of device path
|
||||||
*
|
*
|
||||||
* @v path Path to device
|
* @v path Device path, or NULL
|
||||||
* @ret path_end End of device path
|
* @ret path_end End of device path, or NULL
|
||||||
*/
|
*/
|
||||||
EFI_DEVICE_PATH_PROTOCOL * efi_path_end ( EFI_DEVICE_PATH_PROTOCOL *path ) {
|
EFI_DEVICE_PATH_PROTOCOL * efi_path_end ( EFI_DEVICE_PATH_PROTOCOL *path ) {
|
||||||
|
|
||||||
while ( path->Type != END_DEVICE_PATH_TYPE ) {
|
while ( path && ( path->Type != END_DEVICE_PATH_TYPE ) ) {
|
||||||
path = ( ( ( void * ) path ) +
|
path = ( ( ( void * ) path ) +
|
||||||
/* There's this amazing new-fangled thing known as
|
/* There's this amazing new-fangled thing known as
|
||||||
* a UINT16, but who wants to use one of those? */
|
* a UINT16, but who wants to use one of those? */
|
||||||
|
@ -61,7 +61,7 @@ EFI_DEVICE_PATH_PROTOCOL * efi_path_end ( EFI_DEVICE_PATH_PROTOCOL *path ) {
|
||||||
/**
|
/**
|
||||||
* Find length of device path (excluding terminator)
|
* Find length of device path (excluding terminator)
|
||||||
*
|
*
|
||||||
* @v path Path to device
|
* @v path Device path, or NULL
|
||||||
* @ret path_len Length of device path
|
* @ret path_len Length of device path
|
||||||
*/
|
*/
|
||||||
size_t efi_path_len ( EFI_DEVICE_PATH_PROTOCOL *path ) {
|
size_t efi_path_len ( EFI_DEVICE_PATH_PROTOCOL *path ) {
|
||||||
|
|
Loading…
Reference in New Issue