[apparmor] [PATCH 18/36] apparmor: add basic support for implicit labeling of files
John Johansen
john.johansen at canonical.com
Thu May 16 05:12:59 UTC 2013
On 05/14/2013 07:48 PM, Seth Arnold wrote:
> On Wed, May 01, 2013 at 02:31:03PM -0700, John Johansen wrote:
>> The labeling of files is implied by the set of rules and profiles.
>> Add the ability to set implicit labels on files to reduce the number
>> of path and rule lookups that are needed.
>>
>> Signed-off-by: John Johansen <john.johansen at canonical.com>
>
> (Note to future Seth: You've reviewed 45%.)
>
>> +config SECURITY_APPARMOR_STATS
>> + bool "enable debug statitics"
>
> 'statitics' -- the measure of tics :)
>
>> +/* struct aa_labelset - set of labels for a namespace
>> + *
>> + * Labels within the label set do not have a ref count and only exist
>> + * within the set as long a refcount is held. Once a labels last
>> + * refcount is put it is removed from the set.
>> + */
>
> I think this comment isn't quite right, or at least is confusing. Does
> this sound like a fair replacement?
>
> Labels are reference counted; aa_labelset does not contribute to label
> reference counts. Once a label's last refcount is put it is removed from
> the set.
>
yep thanks
>> +struct aa_labelset {
>> + rwlock_t lock;
>> +
>> + struct rb_root root;
>> +
>> + /* stats */
>> +#ifdef APPARMOR_LABEL_STATS
>> + struct labelset_stats stats;
>> +#endif
>> +
>> +};
>
>> /* struct aa_profile - basic confinement data
>> * @base - base components of the profile (name, refcount, lists, lock ...)
>> - * @count: reference count of the obj
>> - * @rcu: rcu head used when removing from @list
>> * @parent: parent of profile
>> * @ns: namespace the profile is in
>> * @replacedby: is set to the profile that replaced this profile
>> @@ -169,7 +155,6 @@ struct aa_replacedby {
>> * @xmatch_len: xmatch prefix len, used to determine xmatch priority
>> * @audit: the auditing mode of the profile
>> * @mode: the enforcement mode of the profile
>> - * @flags: flags controlling profile behavior
>> * @path_flags: flags controlling path generation behavior
>> * @size: the memory consumed by this profiles rules
>> * @policy: general match rules governing policy
>> @@ -196,6 +181,7 @@ struct aa_replacedby {
>> */
>> struct aa_profile {
>> struct aa_policy base;
>> + struct aa_label label;
>> struct kref count;
>> struct rcu_head rcu;
>> struct aa_profile __rcu *parent;
>> @@ -209,7 +195,6 @@ struct aa_profile {
>> int xmatch_len;
>> enum audit_mode audit;
>> long mode;
>> - long flags;
>> u32 path_flags;
>> int size;
>
> label was added to the struct, but not the docs... count and rcu were
> removed from the docs, but not the struct.
>
>
> The rest will have to wait :)
>
> Thanks
>
>
>
More information about the AppArmor
mailing list