Date: Thu, 23 Oct 2014 14:49:55 +0200 From: =?UTF-8?B?SmVhbi1Tw6liYXN0aWVuIFDDqWRyb24=?= <dumbbell@FreeBSD.org> To: svn-src-all@freebsd.org, Colin Percival <cperciva@FreeBSD.org> Subject: Re: svn commit: r273487 - head/sys/kern Message-ID: <5448F973.8050102@FreeBSD.org> In-Reply-To: <201410222335.s9MNZW62045167@svn.freebsd.org> References: <201410222335.s9MNZW62045167@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --5siMQmWpgiEsfB9Vd6lr0NHwUw6hjAWRB Content-Type: multipart/mixed; boundary="------------080404040809030003020701" This is a multi-part message in MIME format. --------------080404040809030003020701 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi! The following change triggers a kernel trap 12 when env is NULL: > @@ -260,8 +262,10 @@ void > freeenv(char *env) > { > =20 > - if (dynamic_kenv) > + if (dynamic_kenv) { > + memset(env, 0, strlen(env)); > free(env, M_KENV); > + } > } This happens very early in boot for me, just after the lines: WARNING: WITNESS option enabled, expect reduced performance. VT: running with driver "vga". The attached simple patch fixes the problem. What I don't know is if the same problem can occur in kern_unsetenv(): > @@ -437,6 +441,7 @@ kern_unsetenv(const char *name) > kenvp[i++] =3D kenvp[j]; > kenvp[i] =3D NULL; > mtx_unlock(&kenv_lock); > + memset(oldenv, 0, strlen(oldenv)); > free(oldenv, M_KENV); > return (0); > } --=20 Jean-S=C3=A9bastien P=C3=A9dron --------------080404040809030003020701 Content-Type: text/x-patch; name="kern_freeenv-trap12.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="kern_freeenv-trap12.patch" Index: sys/kern/kern_environment.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- sys/kern/kern_environment.c (revision 273540) +++ sys/kern/kern_environment.c (working copy) @@ -262,7 +262,7 @@ freeenv(char *env) { =20 - if (dynamic_kenv) { + if (dynamic_kenv && env !=3D NULL) { memset(env, 0, strlen(env)); free(env, M_KENV); } --------------080404040809030003020701-- --5siMQmWpgiEsfB9Vd6lr0NHwUw6hjAWRB Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQJ8BAEBCgBmBQJUSPl9XxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ2NzA4N0ZEMUFFQUUwRTEyREJDNkE2RjAz OUU5OTc2MUE1RkQ5NENDAAoJEDnpl2Gl/ZTMz2UP/jGE7gokzqLfafFummHJ/FJd tmWOsL5T84kY+rrPw8WfLo5gTH962WqIRTEXivKoxFEAV442gAfYyrd+/HYvXStf 3NKMx2LLuTAjNcfx17EkJgh3zk96+OR9NvrZQvXYV0XyOAIKgOuUjR3PNrr26WCa KSg80lOrlA52WdE3spuv5V/mXiaFUIydAZE4/fkCE1x928Ta3k0J5Jo73aqQOmG/ dQTljh2ClqOZ6mOmL9pzsJJGRc4G/EkgzqjdqZQE7nXJMZIgIKjpfRGDCaHt6uGO EmhSh2e/o1V0RedFT4Wy2uzpenYQJXkM1K7kwK4p8bX8Swz9yumigkUQltgLWxlD +6Bi1VU6BnLqzsHUXerMOPQQWCy0McbyQqj+B6rtsG/whkgPq2b5IvmMw8F137FW xVPczD/aF3h3/uAKI9wKeAoSAWtU1M2zQimFGFKgpGsG3Xr6FWxjdPOhA8QsLHng Vb28Vkel0DrHisfxEcJ4Tf1Nyy2is+slzNgkwUZgqPlKwJRE69kFmSVJFtSbaFtp Ey8xK1BsbrertlkLlQ0HwhJobmk9Q9UjXte5L1hwk/ZJZ1qxainQm7bPcPlvJTw8 dzJdm+m9yYJAGE1H4Z/Q0RCoZzQYId/w4AbWymzVM1qs2rHtEgxfV9g0mGwINrhR WHsOVrEjMdad906WlMqR =wQkS -----END PGP SIGNATURE----- --5siMQmWpgiEsfB9Vd6lr0NHwUw6hjAWRB--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5448F973.8050102>