Date: Wed, 5 Aug 2020 07:28:51 +0000 (UTC) From: Mateusz Guzik <mjg@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r363881 - head/sys/sys Message-ID: <202008050728.0757Spr9037448@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mjg Date: Wed Aug 5 07:28:51 2020 New Revision: 363881 URL: https://svnweb.freebsd.org/changeset/base/363881 Log: vfs: prefill nameidata with garbage on debug kernels Modified: head/sys/sys/namei.h Modified: head/sys/sys/namei.h ============================================================================== --- head/sys/sys/namei.h Wed Aug 5 05:58:25 2020 (r363880) +++ head/sys/sys/namei.h Wed Aug 5 07:28:51 2020 (r363881) @@ -196,11 +196,21 @@ int cache_fplookup(struct nameidata *ndp, enum cache_f #define NDINIT_ATVP(ndp, op, flags, segflg, namep, vp, td) \ NDINIT_ALL(ndp, op, flags, segflg, namep, AT_FDCWD, vp, &cap_no_rights, td) +/* + * Note the constant pattern may *hide* bugs. + */ +#ifdef INVARIANTS +#define NDINIT_PREFILL(arg) memset(arg, 0xff, sizeof(*arg)) +#else +#define NDINIT_PREFILL(arg) do { } while (0) +#endif + #define NDINIT_ALL(ndp, op, flags, segflg, namep, dirfd, startdir, rightsp, td) \ do { \ struct nameidata *_ndp = (ndp); \ cap_rights_t *_rightsp = (rightsp); \ MPASS(_rightsp != NULL); \ + NDINIT_PREFILL(_ndp); \ _ndp->ni_cnd.cn_nameiop = op; \ _ndp->ni_cnd.cn_flags = flags; \ _ndp->ni_segflg = segflg; \
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202008050728.0757Spr9037448>