On Tuesday, June 16, 2020 11:43:31 AM EDT Lakshmi Ramasubramanian wrote: > On 6/16/20 8:29 AM, Steve Grubb wrote: > >>>>> The idea is a good idea, but you're assuming that "result" is always > >>>>> errno. That was probably true originally, but isn't now. For > >>>>> example, ima_appraise_measurement() calls xattr_verify(), which > >>>>> compares the security.ima hash with the calculated file hash. On > >>>>> failure, it returns the result of memcmp(). Each and every code path > >>>>> will need to be checked. > >>>> > >>>> Good catch Mimi. > >>>> > >>>> Instead of "errno" should we just use "result" and log the value given > >>>> in the result parameter? > >>> > >>> That would likely collide with another field of the same name which is > >>> the > >>> operation's results. If it really is errno, the name is fine. It's > >>> generic > >>> enough that it can be reused on other events if that mattered. > >> > >> Steve, what is the historical reason why we have both "res" and > >> "result" for indicating a boolean success/fail? I'm just curious how > >> we ended up this way, and who may still be using "result". > > > > I think its pam and some other user space things did this. But because of > > mixed machines in datacenters supporting multiple versions of OS, we have > > to leave result alone. It has to be 0,1 or success/fail. We cannot use > > it for errno. > > As Mimi had pointed out, since the value passed in result parameter is > not always an error code, "errno" is not an appropriate name. > > Can we add a new field, say, "op_result" to report the result of the > specified operation? Sure. But since it is errno sometimes, how would we know when to translate it? -Steve