git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[PATCH] pid: remove temporary debug code in attach_pid
[pandora-kernel.git]
/
kernel
/
audit.c
diff --git
a/kernel/audit.c
b/kernel/audit.c
index
7dfac70
..
f9889ee
100644
(file)
--- a/
kernel/audit.c
+++ b/
kernel/audit.c
@@
-244,7
+244,7
@@
static int audit_set_rate_limit(int limit, uid_t loginuid, u32 sid)
char *ctx = NULL;
u32 len;
int rc;
char *ctx = NULL;
u32 len;
int rc;
- if ((rc = selinux_
ctx
id_to_string(sid, &ctx, &len)))
+ if ((rc = selinux_
s
id_to_string(sid, &ctx, &len)))
return rc;
else
audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE,
return rc;
else
audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE,
@@
-267,7
+267,7
@@
static int audit_set_backlog_limit(int limit, uid_t loginuid, u32 sid)
char *ctx = NULL;
u32 len;
int rc;
char *ctx = NULL;
u32 len;
int rc;
- if ((rc = selinux_
ctx
id_to_string(sid, &ctx, &len)))
+ if ((rc = selinux_
s
id_to_string(sid, &ctx, &len)))
return rc;
else
audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE,
return rc;
else
audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE,
@@
-293,7
+293,7
@@
static int audit_set_enabled(int state, uid_t loginuid, u32 sid)
char *ctx = NULL;
u32 len;
int rc;
char *ctx = NULL;
u32 len;
int rc;
- if ((rc = selinux_
ctx
id_to_string(sid, &ctx, &len)))
+ if ((rc = selinux_
s
id_to_string(sid, &ctx, &len)))
return rc;
else
audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE,
return rc;
else
audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE,
@@
-321,7
+321,7
@@
static int audit_set_failure(int state, uid_t loginuid, u32 sid)
char *ctx = NULL;
u32 len;
int rc;
char *ctx = NULL;
u32 len;
int rc;
- if ((rc = selinux_
ctx
id_to_string(sid, &ctx, &len)))
+ if ((rc = selinux_
s
id_to_string(sid, &ctx, &len)))
return rc;
else
audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE,
return rc;
else
audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE,
@@
-445,7
+445,7
@@
void audit_send_reply(int pid, int seq, int type, int done, int multi,
* Check for appropriate CAP_AUDIT_ capabilities on incoming audit
* control messages.
*/
* Check for appropriate CAP_AUDIT_ capabilities on incoming audit
* control messages.
*/
-static int audit_netlink_ok(
kernel_cap_t eff_cap
, u16 msg_type)
+static int audit_netlink_ok(
struct sk_buff *skb
, u16 msg_type)
{
int err = 0;
{
int err = 0;
@@
-459,13
+459,13
@@
static int audit_netlink_ok(kernel_cap_t eff_cap, u16 msg_type)
case AUDIT_DEL:
case AUDIT_DEL_RULE:
case AUDIT_SIGNAL_INFO:
case AUDIT_DEL:
case AUDIT_DEL_RULE:
case AUDIT_SIGNAL_INFO:
- if (
!cap_raised(eff_cap
, CAP_AUDIT_CONTROL))
+ if (
security_netlink_recv(skb
, CAP_AUDIT_CONTROL))
err = -EPERM;
break;
case AUDIT_USER:
case AUDIT_FIRST_USER_MSG...AUDIT_LAST_USER_MSG:
case AUDIT_FIRST_USER_MSG2...AUDIT_LAST_USER_MSG2:
err = -EPERM;
break;
case AUDIT_USER:
case AUDIT_FIRST_USER_MSG...AUDIT_LAST_USER_MSG:
case AUDIT_FIRST_USER_MSG2...AUDIT_LAST_USER_MSG2:
- if (
!cap_raised(eff_cap
, CAP_AUDIT_WRITE))
+ if (
security_netlink_recv(skb
, CAP_AUDIT_WRITE))
err = -EPERM;
break;
default: /* bad msg */
err = -EPERM;
break;
default: /* bad msg */
@@
-488,7
+488,7
@@
static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
char *ctx;
u32 len;
char *ctx;
u32 len;
- err = audit_netlink_ok(
NETLINK_CB(skb).eff_cap
, msg_type);
+ err = audit_netlink_ok(
skb
, msg_type);
if (err)
return err;
if (err)
return err;
@@
-538,7
+538,7
@@
static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
if (status_get->mask & AUDIT_STATUS_PID) {
int old = audit_pid;
if (sid) {
if (status_get->mask & AUDIT_STATUS_PID) {
int old = audit_pid;
if (sid) {
- if ((err = selinux_
ctx
id_to_string(
+ if ((err = selinux_
s
id_to_string(
sid, &ctx, &len)))
return err;
else
sid, &ctx, &len)))
return err;
else
@@
-576,7
+576,7
@@
static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
"user pid=%d uid=%u auid=%u",
pid, uid, loginuid);
if (sid) {
"user pid=%d uid=%u auid=%u",
pid, uid, loginuid);
if (sid) {
- if (selinux_
ctx
id_to_string(
+ if (selinux_
s
id_to_string(
sid, &ctx, &len)) {
audit_log_format(ab,
" ssid=%u", sid);
sid, &ctx, &len)) {
audit_log_format(ab,
" ssid=%u", sid);
@@
-614,7
+614,7
@@
static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
loginuid, sid);
break;
case AUDIT_SIGNAL_INFO:
loginuid, sid);
break;
case AUDIT_SIGNAL_INFO:
- err = selinux_
ctx
id_to_string(audit_sig_sid, &ctx, &len);
+ err = selinux_
s
id_to_string(audit_sig_sid, &ctx, &len);
if (err)
return err;
sig_data = kmalloc(sizeof(*sig_data) + len, GFP_KERNEL);
if (err)
return err;
sig_data = kmalloc(sizeof(*sig_data) + len, GFP_KERNEL);
@@
-690,9
+690,7
@@
static const struct inotify_operations audit_inotify_ops = {
/* Initialize audit support at boot time. */
static int __init audit_init(void)
{
/* Initialize audit support at boot time. */
static int __init audit_init(void)
{
-#ifdef CONFIG_AUDITSYSCALL
int i;
int i;
-#endif
printk(KERN_INFO "audit: initializing netlink socket (%s)\n",
audit_default ? "enabled" : "disabled");
printk(KERN_INFO "audit: initializing netlink socket (%s)\n",
audit_default ? "enabled" : "disabled");
@@
-717,10
+715,10
@@
static int __init audit_init(void)
audit_ih = inotify_init(&audit_inotify_ops);
if (IS_ERR(audit_ih))
audit_panic("cannot initialize inotify handle");
audit_ih = inotify_init(&audit_inotify_ops);
if (IS_ERR(audit_ih))
audit_panic("cannot initialize inotify handle");
+#endif
for (i = 0; i < AUDIT_INODE_BUCKETS; i++)
INIT_LIST_HEAD(&audit_inode_hash[i]);
for (i = 0; i < AUDIT_INODE_BUCKETS; i++)
INIT_LIST_HEAD(&audit_inode_hash[i]);
-#endif
return 0;
}
return 0;
}
@@
-818,7
+816,7
@@
err:
*/
unsigned int audit_serial(void)
{
*/
unsigned int audit_serial(void)
{
- static
spinlock_t serial_lock = SPIN_LOCK_UNLOCKED
;
+ static
DEFINE_SPINLOCK(serial_lock)
;
static unsigned int serial = 0;
unsigned long flags;
static unsigned int serial = 0;
unsigned long flags;
@@
-1030,6
+1028,9
@@
void audit_log_hex(struct audit_buffer *ab, const unsigned char *buf,
struct sk_buff *skb;
static const unsigned char *hex = "0123456789ABCDEF";
struct sk_buff *skb;
static const unsigned char *hex = "0123456789ABCDEF";
+ if (!ab)
+ return;
+
BUG_ON(!ab->skb);
skb = ab->skb;
avail = skb_tailroom(skb);
BUG_ON(!ab->skb);
skb = ab->skb;
avail = skb_tailroom(skb);
@@
-1062,6
+1063,9
@@
static void audit_log_n_string(struct audit_buffer *ab, size_t slen,
unsigned char *ptr;
struct sk_buff *skb;
unsigned char *ptr;
struct sk_buff *skb;
+ if (!ab)
+ return;
+
BUG_ON(!ab->skb);
skb = ab->skb;
avail = skb_tailroom(skb);
BUG_ON(!ab->skb);
skb = ab->skb;
avail = skb_tailroom(skb);