#include <Library/BaseCryptLib.h>
+#include <stdint.h>
+
#define FALLBACK L"\\fb" EFI_ARCH L".efi"
#define MOK_MANAGER L"\\mm" EFI_ARCH L".efi"
/*
* Perform basic bounds checking of the intra-image pointers
*/
-static void *ImageAddress (void *image, unsigned int size, unsigned int address)
+static void *ImageAddress (void *image, uint64_t size, uint64_t address)
{
+ /* ensure our local pointer isn't bigger than our size */
if (address > size)
return NULL;
+ /* Insure our math won't overflow */
+ if (UINT64_MAX - address < (uint64_t)image)
+ return NULL;
+
+ /* return the absolute pointer */
return image + address;
}