[PATCH 3/3] uefidump: add dumping for the URI device path

Ivan Hu ivan.hu at canonical.com
Thu Nov 5 08:55:29 UTC 2015


Add dumping with uefi spec. 2.5 for new messaging device path, URI device path.

Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
---
 src/uefi/uefidump/uefidump.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/uefi/uefidump/uefidump.c b/src/uefi/uefidump/uefidump.c
index 83660a2..654bc54 100644
--- a/src/uefi/uefidump/uefidump.c
+++ b/src/uefi/uefidump/uefidump.c
@@ -484,6 +484,20 @@ static char *uefidump_build_dev_path(char *path, fwts_uefi_dev_path *dev_path, c
 					n->namesp_id, n->ext_unique_id);
 			}
 			break;
+		case FWTS_UEFI_URI_DEVICE_PATH_SUBTYPE:
+			if (dev_path_len >= sizeof(fwts_uefi_uri_dev_path)) {
+				fwts_uefi_uri_dev_path *u = (fwts_uefi_uri_dev_path *)dev_path;
+				char *tmp;
+				uint16_t len = u->dev_path.length[0] | (((uint16_t)u->dev_path.length[1]) << 8);
+				tmp = malloc(len - sizeof(fwts_uefi_uri_dev_path) + 1);
+				if (tmp) {
+					memcpy(tmp, u->uri, len - sizeof(fwts_uefi_uri_dev_path));
+					tmp[len - sizeof(fwts_uefi_uri_dev_path)] = '\0';
+					path = uefidump_vprintf(path, "\\URI(%s)", tmp);
+					free(tmp);
+				}
+			}
+			break;
 		default:
 			path = uefidump_vprintf(path, "\\Unknown-MESSAGING-DEV-PATH(0x%" PRIx8 ")", dev_path->subtype);
 			break;
-- 
1.9.1




More information about the fwts-devel mailing list