Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 8 Jan 2016 16:37:22 +0000 (UTC)
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r293425 - head/sys/boot/efi/boot1
Message-ID:  <201601081637.u08GbM7S002548@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: emaste
Date: Fri Jan  8 16:37:22 2016
New Revision: 293425
URL: https://svnweb.freebsd.org/changeset/base/293425

Log:
  Add safety belt for boot1.efi file size
  
  Reviewed by:	smh
  Sponsored by:	The FreeBSD Foundation
  Differential Revision:	https://reviews.freebsd.org/D4833

Modified:
  head/sys/boot/efi/boot1/Makefile
  head/sys/boot/efi/boot1/generate-fat.sh

Modified: head/sys/boot/efi/boot1/Makefile
==============================================================================
--- head/sys/boot/efi/boot1/Makefile	Fri Jan  8 16:25:11 2016	(r293424)
+++ head/sys/boot/efi/boot1/Makefile	Fri Jan  8 16:37:22 2016	(r293425)
@@ -79,8 +79,15 @@ boot1.o: ${.CURDIR}/../../common/ufsread
 # created by generate-fat.sh
 
 .include "${.CURDIR}/Makefile.fat"
+BOOT1_MAXSIZE?=	131072
 
 boot1.efifat: boot1.efi
+	@set -- `ls -l boot1.efi`; \
+	x=$$(($$5-${BOOT1_MAXSIZE})); \
+	if [ $$x -ge 0 ]; then \
+	    echo "boot1 $$x bytes too large; regenerate FAT templates?" >&2 ;\
+	    exit 1; \
+	fi
 	echo ${.OBJDIR}
 	uudecode ${.CURDIR}/fat-${MACHINE}.tmpl.bz2.uu
 	mv fat-${MACHINE}.tmpl.bz2 ${.TARGET}.bz2

Modified: head/sys/boot/efi/boot1/generate-fat.sh
==============================================================================
--- head/sys/boot/efi/boot1/generate-fat.sh	Fri Jan  8 16:25:11 2016	(r293424)
+++ head/sys/boot/efi/boot1/generate-fat.sh	Fri Jan  8 16:37:22 2016	(r293425)
@@ -55,9 +55,20 @@ BOOT1_OFFSET=$(hd $OUTPUT_FILE | grep 'B
 # Convert to number of blocks
 BOOT1_OFFSET=$(echo 0x$BOOT1_OFFSET | awk '{printf("%x\n",$1/512);}')
 
+# Record maximum boot1 size in bytes
+case $BOOT1_SIZE in
+*k)
+	BOOT1_MAXSIZE=$(expr ${BOOT1_SIZE%k} '*' 1024)
+	;;
+*)
+	BOOT1_MAXSIZE=$BOOT1_SIZE
+	;;
+esac
+
 echo '# This file autogenerated by generate-fat.sh - DO NOT EDIT' > Makefile.fat
 echo '# $FreeBSD$' >> Makefile.fat
 echo "BOOT1_OFFSET=0x$BOOT1_OFFSET" >> Makefile.fat
+echo "BOOT1_MAXSIZE=$BOOT1_MAXSIZE" >> Makefile.fat
 
 bzip2 $OUTPUT_FILE
 echo 'FAT template boot filesystem created by generate-fat.sh' > $OUTPUT_FILE.bz2.uu



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201601081637.u08GbM7S002548>