Date: Sat, 18 May 2024 09:24:39 +0800 From: Zhenlei Huang <zlei@FreeBSD.org> To: Ed Maste <emaste@freebsd.org> Cc: "src-committers@freebsd.org" <src-committers@FreeBSD.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@FreeBSD.org>, "dev-commits-src-main@freebsd.org" <dev-commits-src-main@FreeBSD.org> Subject: Re: git: f7d45c5443ed - main - bhyve: avoid side effect in assertion Message-ID: <87605178-E3BF-4B48-B1D9-2D54EE2FADA7@FreeBSD.org> In-Reply-To: <CD1C51C4-53FC-484A-BEFE-81242E8A7C09@FreeBSD.org> References: <202405172000.44HK0Xw3049841@gitrepo.freebsd.org> <CD1C51C4-53FC-484A-BEFE-81242E8A7C09@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
> On May 18, 2024, at 8:57 AM, Zhenlei Huang <zlei@FreeBSD.org> wrote: >=20 >=20 >=20 >> On May 18, 2024, at 4:00 AM, Ed Maste <emaste@freebsd.org> wrote: >>=20 >> The branch main has been updated by emaste: >>=20 >> URL: = https://cgit.FreeBSD.org/src/commit/?id=3Df7d45c5443edc99857fdda19c68301b5= ec4a8971 >>=20 >> commit f7d45c5443edc99857fdda19c68301b5ec4a8971 >> Author: Pierre Pronchery <pierre@freebsdfoundation.org> >> AuthorDate: 2024-05-17 07:31:32 +0000 >> Commit: Ed Maste <emaste@FreeBSD.org> >> CommitDate: 2024-05-17 19:45:18 +0000 >>=20 >> bhyve: avoid side effect in assertion >>=20 >> An assert() was setting the error variable instead of checking it. >>=20 >> Reported by: Coverity Scan >> CID: 1521431 >> Reviewed by: jhb >> Sponsored by: The FreeBSD Foundation >> Pull Request: https://github.com/freebsd/freebsd-src/pull/1244 >> --- >> usr.sbin/bhyve/tpm_ppi_qemu.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >>=20 >> diff --git a/usr.sbin/bhyve/tpm_ppi_qemu.c = b/usr.sbin/bhyve/tpm_ppi_qemu.c >> index ad66ecb09683..239d39184589 100644 >> --- a/usr.sbin/bhyve/tpm_ppi_qemu.c >> +++ b/usr.sbin/bhyve/tpm_ppi_qemu.c >> @@ -161,7 +161,7 @@ tpm_ppi_deinit(void *sc) >> ppi =3D sc; >>=20 >> error =3D unregister_mem(&ppi_mmio); >> - assert(error =3D 0); >> + assert(error =3D=3D 0); >=20 > Emm, does that not get caught by compilers ? Unfortunately not. assert is defined as a macro as such ``` #define assert(e) ((e) ? (void)0 : __assert(__func__, __FILE__, \ __LINE__, #e)) ``` So `e` is enclosed with () and compiler can not catch that. >=20 >>=20 >> free(ppi); >> } >=20 >=20 >=20
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?87605178-E3BF-4B48-B1D9-2D54EE2FADA7>