Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Nov 2020 13:15:56 -0700
From:      Scott Long <scottl@samsco.org>
To:        Stefan Esser <se@freebsd.org>
Cc:        Kyle Evans <kevans@freebsd.org>, Guy Yur <guyyur@gmail.com>, freebsd-current <freebsd-current@freebsd.org>, kaktus@freebsd.org
Subject:   Re: pkg.c revision 367687 breaks pkg
Message-ID:  <004F3036-1481-4979-BDD2-4BA5D19194E1@samsco.org>
In-Reply-To: <d6cc7841-3e27-deca-496e-38b5cad58920@freebsd.org>
References:  <A3B7709B-8C16-48E0-9A6C-E45D206F6DE6@gmail.com> <EC6FF21B-109A-45EE-97F2-A04B1F195DFA@samsco.org> <4e5fe0a6-7325-d413-f68f-2c0ebaa34763@gmail.com> <CACNAnaEGMBze8-XD61KB0ckH0__YJYPAEpQML3B0BesCeRUxFQ@mail.gmail.com> <d6cc7841-3e27-deca-496e-38b5cad58920@freebsd.org>

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


> On Nov 15, 2020, at 1:05 PM, Stefan Esser <se@freebsd.org> wrote:
>=20
> Am 15.11.20 um 20:41 schrieb Kyle Evans:
>> This is a separate (valid) problem, but not directly related to
>> Scott's work here. sysctlbyname now goes directly to the kernel with
>> no chance for the user.* sysctls to intercept. That should
>> independently be fixed to maintain the illusion that they're real
>> sysctl's.
>=20
> user.localbase is a real sysctl, but with a default value returned
> when sysctl(3) is used.
>=20
> The getlocalbase() function should not depend on this default value,
> since it contains an identicl default value that can be returned if
> sysctlbyname fails (or rather returns a zero length string in case
> no other value has been written to the kernel).
>=20

sysctlbyname() was returning success and an empty string.  =
getlocalbase()
has no way to know if this was intentional or not, so it can=E2=80=99t =
rationally check.
Switching to sysctlnametomib() + sysctl() seems to solve this problem.

However, I=E2=80=99m going to revert all of this and let the experts =
decide on the
best path forward.

Scott




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?004F3036-1481-4979-BDD2-4BA5D19194E1>