svn commit: r368337 - in head: . usr.sbin/crunch/crunchgen

Alex Richardson arichardson at FreeBSD.org
Fri Dec 4 15:53:38 UTC 2020


Author: arichardson
Date: Fri Dec  4 15:53:37 2020
New Revision: 368337
URL: https://svnweb.freebsd.org/changeset/base/368337

Log:
  crunchgen: fix NULL-deref bug introduced in r364647
  
  While porting over the local changes from CheriBSD for upstreaming, I
  accidentally committed a broken version of find_entry_point(): we have to
  return NULL if the value is not found instead of a value with
  ep->name == NULL, since the checks in main were changed to check ep instead
  of ep->name for NULL.
  
  This only matters if the crunched tool cannot be found using normal lookup
  and one of the fallback paths is used, so it's unlikely to be triggered
  in rescue. However, I noticed that one of our CheriBSD test scripts was
  failing to run commands under `su` on minimal disk images where all
  binaries are hardlinks to a `cheribsdbox` tool generated with crunchgen.
  
  This also updates the bootstrapping check in Makefile.inc1 to bootstrap
  crunchgen up to the next version bump.
  
  Reviewed By:	kevans
  Differential Revision: https://reviews.freebsd.org/D27474

Modified:
  head/Makefile.inc1
  head/usr.sbin/crunch/crunchgen/crunched_main.c

Modified: head/Makefile.inc1
==============================================================================
--- head/Makefile.inc1	Fri Dec  4 15:50:44 2020	(r368336)
+++ head/Makefile.inc1	Fri Dec  4 15:53:37 2020	(r368337)
@@ -2270,7 +2270,7 @@ _bootstrap_tools_links+=crunchide
 
 # 1300115: Higher WARNS fixes
 .if ${BOOTSTRAPPING} < 1202502 || \
-	(${BOOTSTRAPPING} > 1300000 && ${BOOTSTRAPPING} < 1300115)
+	(${BOOTSTRAPPING} > 1300000 && ${BOOTSTRAPPING} < 1300131)
 _crunchgen=	usr.sbin/crunch/crunchgen
 .else
 _bootstrap_tools_links+=crunchgen

Modified: head/usr.sbin/crunch/crunchgen/crunched_main.c
==============================================================================
--- head/usr.sbin/crunch/crunchgen/crunched_main.c	Fri Dec  4 15:50:44 2020	(r368336)
+++ head/usr.sbin/crunch/crunchgen/crunched_main.c	Fri Dec  4 15:53:37 2020	(r368337)
@@ -97,9 +97,9 @@ find_entry_point(const char *basename)
 
 	for (ep = entry_points; ep->name != NULL; ep++)
 		if (!strcmp(basename, ep->name))
-			break;
+			return (ep);
 
-	return (ep);
+	return (NULL);
 }
 
 static const char *


More information about the svn-src-all mailing list