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:
> 
> 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.
> 
> user.localbase is a real sysctl, but with a default value returned
> when sysctl(3) is used.
> 
> 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).
> 

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

However, I’m 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>