git: 5ce98ee5f42d - main - stand/userboot: Simplify code
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 01 May 2023 21:04:19 UTC
The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=5ce98ee5f42de10d29f3a99719652c272d13c2e7 commit 5ce98ee5f42de10d29f3a99719652c272d13c2e7 Author: Warner Losh <imp@FreeBSD.org> AuthorDate: 2023-05-01 15:28:17 +0000 Commit: Warner Losh <imp@FreeBSD.org> CommitDate: 2023-05-01 21:02:53 +0000 stand/userboot: Simplify code We have way more than 8k of stack for the current value of the zfs bootonce attribute. Allocate buf on the stack rather than the complicated malloc / free dance. Sponsored by: Netflix Reviewed by: tsoome, kevans, jhb Differential Revision: https://reviews.freebsd.org/D39414 --- stand/userboot/userboot/main.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/stand/userboot/userboot/main.c b/stand/userboot/userboot/main.c index b134d86de9bd..3dde6f6b4109 100644 --- a/stand/userboot/userboot/main.c +++ b/stand/userboot/userboot/main.c @@ -235,7 +235,6 @@ extract_currdev(void) struct devdesc *dd; #if defined(USERBOOT_ZFS_SUPPORT) struct zfs_devdesc zdev; - char *buf = NULL; if (userboot_zfs_found) { @@ -272,17 +271,14 @@ extract_currdev(void) #if defined(USERBOOT_ZFS_SUPPORT) if (userboot_zfs_found) { - buf = malloc(VDEV_PAD_SIZE); - if (buf != NULL) { - if (zfs_get_bootonce(&zdev, OS_BOOTONCE, buf, - VDEV_PAD_SIZE) == 0) { - printf("zfs bootonce: %s\n", buf); - set_currdev(buf); - setenv("zfs-bootonce", buf, 1); - } - free(buf); - (void) zfs_attach_nvstore(&zdev); + char buf[VDEV_PAD_SIZE]; + + if (zfs_get_bootonce(&zdev, OS_BOOTONCE, buf, sizeof(buf)) == 0) { + printf("zfs bootonce: %s\n", buf); + set_currdev(buf); + setenv("zfs-bootonce", buf, 1); } + (void)zfs_attach_nvstore(&zdev); } #endif }