diff options
Diffstat (limited to 'emulators/qemu-devel/files')
-rw-r--r-- | emulators/qemu-devel/files/extra-patch-8267ad2cb92b106bb16e91234f04abc49ab32036 | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/emulators/qemu-devel/files/extra-patch-8267ad2cb92b106bb16e91234f04abc49ab32036 b/emulators/qemu-devel/files/extra-patch-8267ad2cb92b106bb16e91234f04abc49ab32036 new file mode 100644 index 000000000000..ea3a4b5143ba --- /dev/null +++ b/emulators/qemu-devel/files/extra-patch-8267ad2cb92b106bb16e91234f04abc49ab32036 @@ -0,0 +1,33 @@ +From 8267ad2cb92b106bb16e91234f04abc49ab32036 Mon Sep 17 00:00:00 2001 +From: Stacey Son <sson@FreeBSD.org> +Date: Wed, 26 Nov 2014 21:07:00 +0000 +Subject: [PATCH] Bug fix for hw.machine and hw.machine_arch sysctl's. + +For a NULL buffer sysctl needs to return just the length of the buffer. +--- + bsd-user/freebsd/os-sys.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/bsd-user/freebsd/os-sys.c b/bsd-user/freebsd/os-sys.c +index 3ab4f8e..dbdc9ef 100644 +--- a/bsd-user/freebsd/os-sys.c ++++ b/bsd-user/freebsd/os-sys.c +@@ -336,12 +336,16 @@ abi_long do_freebsd_sysctl(CPUArchState *env, abi_ulong namep, int32_t namelen, + case CTL_HW: + switch (snamep[1]) { + case HW_MACHINE: +- strlcpy(holdp, TARGET_HW_MACHINE, oldlen); ++ holdlen = sizeof(TARGET_HW_MACHINE); ++ if (holdp) ++ strlcpy(holdp, TARGET_HW_MACHINE, oldlen); + ret = 0; + goto out; + + case HW_MACHINE_ARCH: +- strlcpy(holdp, TARGET_HW_MACHINE_ARCH, oldlen); ++ holdlen = sizeof(TARGET_HW_MACHINE_ARCH); ++ if (holdp) ++ strlcpy(holdp, TARGET_HW_MACHINE_ARCH, oldlen); + ret = 0; + goto out; + |