Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Jul 2021 18:41:36 -0400
From:      Shawn Webb <shawn.webb@hardenedbsd.org>
To:        Warner Losh <imp@bsdimp.com>
Cc:        Warner Losh <imp@freebsd.org>, src-committers <src-committers@freebsd.org>, "<dev-commits-src-all@freebsd.org>" <dev-commits-src-all@freebsd.org>, dev-commits-src-main@freebsd.org
Subject:   Re: git: 72821668b039 - main - stand/kmem_zalloc: panic when a M_WAITOK allocation fails
Message-ID:  <20210709224136.qprhblk43ndtmxqf@mutt-hbsd>
In-Reply-To: <CANCZdfr4X%2Bjg5c1WrUWDMVDy9MmZMB%2Bp_%2BW09AKhNt7%2Bu1Fhxg@mail.gmail.com>
References:  <202107091726.169HQvGQ084473@gitrepo.freebsd.org> <20210709195425.xzk2azaor4ielmb4@mutt-hbsd> <CANCZdfr4X%2Bjg5c1WrUWDMVDy9MmZMB%2Bp_%2BW09AKhNt7%2Bu1Fhxg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--53mirfa322pvcatr
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, Jul 09, 2021 at 02:34:12PM -0600, Warner Losh wrote:
> On Fri, Jul 9, 2021 at 1:54 PM Shawn Webb <shawn.webb@hardenedbsd.org>
> wrote:
>=20
> > On Fri, Jul 09, 2021 at 05:26:57PM +0000, Warner Losh wrote:
> > > The branch main has been updated by imp:
> > >
> > > URL:
> > https://cgit.FreeBSD.org/src/commit/?id=3D72821668b039c276914569e9caa1c=
dfa4e4cb674
> > >
> > > commit 72821668b039c276914569e9caa1cdfa4e4cb674
> > > Author:     Warner Losh <imp@FreeBSD.org>
> > > AuthorDate: 2021-07-09 17:21:18 +0000
> > > Commit:     Warner Losh <imp@FreeBSD.org>
> > > CommitDate: 2021-07-09 17:21:18 +0000
> > >
> > >     stand/kmem_zalloc: panic when a M_WAITOK allocation fails
> > >
> > >     Malloc() might return NULL, in which case we will panic with a NU=
LL
> > >     pointer deref. Make it panic when the allocation fails to preserve
> > the
> > >     postcondtion that we never return a non-NULL value.
> >
> > malloc(9) tells us that M_WAITOK will never fail. I'm thinking this
> > conditional might need to be negated for the !M_WAITOK case, in which
> > malloc(9) could indeed fail.
> >
> > Although, even as I type this email, I just realized that a different
> > function, Malloc, is being called. What's the difference between
> > malloc and Malloc?
> >
>=20
> The block of code is to be used in the standalone environment.
> The Malloc() function there doesn't have wait/nowait variants and
> can fail (though in the boot loader, that almost never happens except
>  when there's a bug). The code is for wrappers around kmem_zalloc
> which is the OpenZFS spelling of malloc. It assumes that kmem_zalloc
> with M_WAITOK will never return NULL, so it never checks. This
> changes a weird panic when the returned NULL pointer is dereferenced,
> to an orderly panic when the malloc that the code assumes will never
> fail actuall fails. This at least gives better context of where the error
> happened and what the error was. In practice, this is a big nop, but
> we have had issues with other Malloc calls in the past failing because
> of bugs that caused us to ask for a ridiculous amount of memory.
>=20
> Make sense?

That makes much more sense. Thanks a lot for the clarification!

--=20
Shawn Webb
Cofounder / Security Engineer
HardenedBSD

https://git.hardenedbsd.org/hardenedbsd/pubkeys/-/raw/master/Shawn_Webb/03A=
4CBEBB82EA5A67D9F3853FF2E67A277F8E1FA.pub.asc

--53mirfa322pvcatr
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEA6TL67gupaZ9nzhT/y5nonf44foFAmDo0J4ACgkQ/y5nonf4
4fq4tRAAoQKdCupdv+PZ+1R36+kh9uRyFkOk+/fR5VkQl8anqid7GMAYx6fwEC5k
bsqj95tIBJZ00iV0pjoqdCJYgzmBAOcrs8ZNNka1Q42kgSyqk+xgHe2MHGnVaQ7g
60zCj8267dpo+nhQVp0vkffpSgb+qpLm9wKZQ0wDe4hExyZNBabSfOubCrLDCkwW
m8t/iG0laOAtbRNJ2EqWuELIAkqKZpuume0KUH4iL14d8RjhpPCQecwA7orPZnDU
sZnO2te2qQbckBRhfCNEMNW7pBY7JfIPyzqfa4Bk0vdWtm7PIJnFwxi59IvqWKtZ
jwCWMNzNNIt9wZDOnB0ktuLZWRxQvCqcV2SQ96lDIQCbWYEnzxItGqD9INpqh3y2
Jfl7dnWDmcnnHHfHYRaYJgW4yEqnqpAB8V/BhgES4bnYN4vCst3LWheEPBpKOe3s
Ar4735O+QwdR9hFKyHPVeVokaeFSu46mfD/3/li1F7/HcLNKpqs7KxvCksZE+uHq
Fv3n7ddWrndI+DTkFzPtvleVBQjhpS828rgoP5jCC6liFRkOp/omFD85g4l68L73
ejKAn6ZWiP/LzS/8La9xDfHRQ3SMsw8CVO81m83b9WixDlnCLLx66WGnA596pMkb
OFvNA7c4hZHr9z5H46/C2hZ8G9mpaW2e7R/U2IbkN8y4x0bSTj8=
=RxBr
-----END PGP SIGNATURE-----

--53mirfa322pvcatr--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20210709224136.qprhblk43ndtmxqf>