You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.2 KiB
55 lines
1.2 KiB
/* |
|
* AppArmor security module |
|
* |
|
* This file contains AppArmor security identifier (sid) manipulation fns |
|
* |
|
* Copyright 2009-2010 Canonical Ltd. |
|
* |
|
* This program is free software; you can redistribute it and/or |
|
* modify it under the terms of the GNU General Public License as |
|
* published by the Free Software Foundation, version 2 of the |
|
* License. |
|
* |
|
* |
|
* AppArmor allocates a unique sid for every profile loaded. If a profile |
|
* is replaced it receives the sid of the profile it is replacing. |
|
* |
|
* The sid value of 0 is invalid. |
|
*/ |
|
|
|
#include <linux/spinlock.h> |
|
#include <linux/errno.h> |
|
#include <linux/err.h> |
|
|
|
#include "include/sid.h" |
|
|
|
/* global counter from which sids are allocated */ |
|
static u32 global_sid; |
|
static DEFINE_SPINLOCK(sid_lock); |
|
|
|
/* TODO FIXME: add sid to profile mapping, and sid recycling */ |
|
|
|
/** |
|
* aa_alloc_sid - allocate a new sid for a profile |
|
*/ |
|
u32 aa_alloc_sid(void) |
|
{ |
|
u32 sid; |
|
|
|
/* |
|
* TODO FIXME: sid recycling - part of profile mapping table |
|
*/ |
|
spin_lock(&sid_lock); |
|
sid = (++global_sid); |
|
spin_unlock(&sid_lock); |
|
return sid; |
|
} |
|
|
|
/** |
|
* aa_free_sid - free a sid |
|
* @sid: sid to free |
|
*/ |
|
void aa_free_sid(u32 sid) |
|
{ |
|
; /* NOP ATM */ |
|
}
|
|
|