git: 1323f0aa9cb0 - main - stand/uboot: setup archsw before probing devices
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 01 Jul 2022 11:37:19 UTC
The branch main has been updated by mw:
URL: https://cgit.FreeBSD.org/src/commit/?id=1323f0aa9cb0392d2946226bd76f14463e875a60
commit 1323f0aa9cb0392d2946226bd76f14463e875a60
Author: Albert Jakiela <aja@semihalf.com>
AuthorDate: 2022-06-28 15:28:35 +0000
Commit: Marcin Wojtas <mw@FreeBSD.org>
CommitDate: 2022-07-01 11:36:41 +0000
stand/uboot: setup archsw before probing devices
In some cases ubldr would try to mount a disk device before
the archsw struct was filled with functions pointers.
This would result in a NULL pointer derefrence of the arch_getdev field.
Fix that filling the archsw functions earlier.
Note that this matches the EFI behavoiur.
Reviewed by: imp, mw
Sponsored by: Stormshield
Obtained from: Semihalf
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D35670
---
stand/uboot/main.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/stand/uboot/main.c b/stand/uboot/main.c
index 85ddf5db1f90..6648dc607c11 100644
--- a/stand/uboot/main.c
+++ b/stand/uboot/main.c
@@ -475,6 +475,13 @@ main(int argc, char **argv)
meminfo();
+ archsw.arch_loadaddr = uboot_loadaddr;
+ archsw.arch_getdev = uboot_getdev;
+ archsw.arch_copyin = uboot_copyin;
+ archsw.arch_copyout = uboot_copyout;
+ archsw.arch_readin = uboot_readin;
+ archsw.arch_autoload = uboot_autoload;
+
/* Set up currdev variable to have hooks in place. */
env_setenv("currdev", EV_VOLATILE, "", uboot_setcurrdev, env_nounset);
@@ -538,13 +545,6 @@ do_interact:
setenv("usefdt", "1", 1);
#endif
- archsw.arch_loadaddr = uboot_loadaddr;
- archsw.arch_getdev = uboot_getdev;
- archsw.arch_copyin = uboot_copyin;
- archsw.arch_copyout = uboot_copyout;
- archsw.arch_readin = uboot_readin;
- archsw.arch_autoload = uboot_autoload;
-
interact(); /* doesn't return */
return (0);