Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys



Julio M. Merino Vidal wrote:
On 23/06/2007, at 20:24, Elad Efrat wrote:
[...]
   Kernel Programming Interface
     kauth exports a KPI that allows developers both of NetBSD and
     third-party products to authorize requests, access and modify
     credentials, create and remove scopes and listeners, and perform
     other miscellaneous operations on credentials.

here is what it says about accessor/mutators:

   Credentials Accessors and Mutators
     kauth has a variety of accessor and mutator routines to handle
     kauth_cred_t objects.

     The following routines can be used to access and modify the user-
     and group-ids in a kauth_cred_t:
[...]
what is so poor about it? what is missing?

Maybe a rationale for this "complete abstraction" design and emphasizing that accessors and mutators are used to completely hide the implementation details. This "kind of design" is not common among the kernel's interfaces, unfortunately, so it might be difficult for other developers to guess your initial intentions with the design.

while I think this is nitpicking, I'll address your comments. :)

I think the way from the above suggestion to "poor documentation" is
very far. fwiw, here's the mail sent to the public introducing kauth
a little over a year ago:

http://mail-index.netbsd.org/tech-security/2006/04/18/0000.html

where I said this:

    It's worth noting that the credentials have become an opaque
    type: it's no longer possible to directly access members like
    "effective user-id" or "saved group-id". In fact, there are very few
    cases where you should be doing that. This opacity allows us to
    freely modify the credentials structure.

since then, the issue of kauth's opacity was brought up multiple times,
most notably the commits I quoted in a previous email.

so, true, while this was not made crystal clear in the documentation
(though I tend to have mixed feelings about that, but oh well), I agree
that if the above helps people understand the interface and
implementation it should certainly be added.

-e.



Home | Main Index | Thread Index | Old Index