svn commit: r323905 - in head/sys/boot/efi: include loader

Toomas Soome tsoome at FreeBSD.org
Fri Sep 22 07:29:28 UTC 2017


Author: tsoome
Date: Fri Sep 22 07:29:26 2017
New Revision: 323905
URL: https://svnweb.freebsd.org/changeset/base/323905

Log:
  libefi: pdinfo_t pd_unit and pd_open should be unsigned
  
  The device index, partition index and reference counter are all positive
  numbers. However, since our internal partition number may be negative
  to indicate GPT table, the compare expression need to take care when comparing
  pdinfo_t and partition data.

Modified:
  head/sys/boot/efi/include/efilib.h
  head/sys/boot/efi/loader/main.c

Modified: head/sys/boot/efi/include/efilib.h
==============================================================================
--- head/sys/boot/efi/include/efilib.h	Fri Sep 22 06:33:01 2017	(r323904)
+++ head/sys/boot/efi/include/efilib.h	Fri Sep 22 07:29:26 2017	(r323905)
@@ -56,8 +56,8 @@ typedef struct pdinfo
 	EFI_HANDLE		pd_alias;
 	EFI_DEVICE_PATH		*pd_devpath;
 	EFI_BLOCK_IO		*pd_blkio;
-	int			pd_unit;	/* unit number */
-	int			pd_open;	/* reference counter */
+	uint32_t		pd_unit;	/* unit number */
+	uint32_t		pd_open;	/* reference counter */
 	void			*pd_bcache;	/* buffer cache data */
 } pdinfo_t;
 

Modified: head/sys/boot/efi/loader/main.c
==============================================================================
--- head/sys/boot/efi/loader/main.c	Fri Sep 22 06:33:01 2017	(r323904)
+++ head/sys/boot/efi/loader/main.c	Fri Sep 22 07:29:26 2017	(r323905)
@@ -901,7 +901,7 @@ command_chain(int argc, char *argv[])
 				/*
 				 * d_partition should be 255
 				 */
-				if (pd->pd_unit == d_dev->d_slice) {
+				if (pd->pd_unit == (uint32_t)d_dev->d_slice) {
 					loaded_image->DeviceHandle =
 					    pd->pd_handle;
 					break;


More information about the svn-src-all mailing list