Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]

Diff markup

Differences between /linux/security/selinux/exports.c (Version 2.6.25) and /linux/security/selinux/exports.c (Version 2.6.31.13)


  1 /*                                                  1 /*
  2  * SELinux services exported to the rest of th      2  * SELinux services exported to the rest of the kernel.
  3  *                                                  3  *
  4  * Author: James Morris <jmorris@redhat.com>        4  * Author: James Morris <jmorris@redhat.com>
  5  *                                                  5  *
  6  * Copyright (C) 2005 Red Hat, Inc., James Mor      6  * Copyright (C) 2005 Red Hat, Inc., James Morris <jmorris@redhat.com>
  7  * Copyright (C) 2006 Trusted Computer Solutio      7  * Copyright (C) 2006 Trusted Computer Solutions, Inc. <dgoeddel@trustedcs.com>
  8  * Copyright (C) 2006 IBM Corporation, Timothy      8  * Copyright (C) 2006 IBM Corporation, Timothy R. Chavez <tinytim@us.ibm.com>
  9  *                                                  9  *
 10  * This program is free software; you can redi     10  * This program is free software; you can redistribute it and/or modify
 11  * it under the terms of the GNU General Publi     11  * it under the terms of the GNU General Public License version 2,
 12  * as published by the Free Software Foundatio     12  * as published by the Free Software Foundation.
 13  */                                                13  */
 14 #include <linux/types.h>                           14 #include <linux/types.h>
 15 #include <linux/kernel.h>                          15 #include <linux/kernel.h>
 16 #include <linux/module.h>                          16 #include <linux/module.h>
 17 #include <linux/selinux.h>                         17 #include <linux/selinux.h>
 18 #include <linux/fs.h>                              18 #include <linux/fs.h>
 19 #include <linux/ipc.h>                             19 #include <linux/ipc.h>
 20 #include <asm/atomic.h>                            20 #include <asm/atomic.h>
 21                                                    21 
 22 #include "security.h"                              22 #include "security.h"
 23 #include "objsec.h"                                23 #include "objsec.h"
 24                                                    24 
 25 /* SECMARK reference count */                      25 /* SECMARK reference count */
 26 extern atomic_t selinux_secmark_refcount;          26 extern atomic_t selinux_secmark_refcount;
 27                                                    27 
 28 int selinux_sid_to_string(u32 sid, char **ctx, << 
 29 {                                              << 
 30         if (selinux_enabled)                   << 
 31                 return security_sid_to_context << 
 32         else {                                 << 
 33                 *ctx = NULL;                   << 
 34                 *ctxlen = 0;                   << 
 35         }                                      << 
 36                                                << 
 37         return 0;                              << 
 38 }                                              << 
 39                                                << 
 40 void selinux_get_inode_sid(const struct inode  << 
 41 {                                              << 
 42         if (selinux_enabled) {                 << 
 43                 struct inode_security_struct * << 
 44                 *sid = isec->sid;              << 
 45                 return;                        << 
 46         }                                      << 
 47         *sid = 0;                              << 
 48 }                                              << 
 49                                                << 
 50 void selinux_get_ipc_sid(const struct kern_ipc << 
 51 {                                              << 
 52         if (selinux_enabled) {                 << 
 53                 struct ipc_security_struct *is << 
 54                 *sid = isec->sid;              << 
 55                 return;                        << 
 56         }                                      << 
 57         *sid = 0;                              << 
 58 }                                              << 
 59                                                << 
 60 void selinux_get_task_sid(struct task_struct * << 
 61 {                                              << 
 62         if (selinux_enabled) {                 << 
 63                 struct task_security_struct *t << 
 64                 *sid = tsec->sid;              << 
 65                 return;                        << 
 66         }                                      << 
 67         *sid = 0;                              << 
 68 }                                              << 
 69                                                << 
 70 int selinux_string_to_sid(char *str, u32 *sid)     28 int selinux_string_to_sid(char *str, u32 *sid)
 71 {                                                  29 {
 72         if (selinux_enabled)                       30         if (selinux_enabled)
 73                 return security_context_to_sid     31                 return security_context_to_sid(str, strlen(str), sid);
 74         else {                                     32         else {
 75                 *sid = 0;                          33                 *sid = 0;
 76                 return 0;                          34                 return 0;
 77         }                                          35         }
 78 }                                                  36 }
 79 EXPORT_SYMBOL_GPL(selinux_string_to_sid);          37 EXPORT_SYMBOL_GPL(selinux_string_to_sid);
 80                                                    38 
 81 int selinux_secmark_relabel_packet_permission(     39 int selinux_secmark_relabel_packet_permission(u32 sid)
 82 {                                                  40 {
 83         if (selinux_enabled) {                     41         if (selinux_enabled) {
 84                 struct task_security_struct *t !!  42                 const struct task_security_struct *__tsec;
                                                   >>  43                 u32 tsid;
                                                   >>  44 
                                                   >>  45                 __tsec = current_security();
                                                   >>  46                 tsid = __tsec->sid;
 85                                                    47 
 86                 return avc_has_perm(tsec->sid, !!  48                 return avc_has_perm(tsid, sid, SECCLASS_PACKET,
 87                                     PACKET__RE     49                                     PACKET__RELABELTO, NULL);
 88         }                                          50         }
 89         return 0;                                  51         return 0;
 90 }                                                  52 }
 91 EXPORT_SYMBOL_GPL(selinux_secmark_relabel_pack     53 EXPORT_SYMBOL_GPL(selinux_secmark_relabel_packet_permission);
 92                                                    54 
 93 void selinux_secmark_refcount_inc(void)            55 void selinux_secmark_refcount_inc(void)
 94 {                                                  56 {
 95         atomic_inc(&selinux_secmark_refcount);     57         atomic_inc(&selinux_secmark_refcount);
 96 }                                                  58 }
 97 EXPORT_SYMBOL_GPL(selinux_secmark_refcount_inc     59 EXPORT_SYMBOL_GPL(selinux_secmark_refcount_inc);
 98                                                    60 
 99 void selinux_secmark_refcount_dec(void)            61 void selinux_secmark_refcount_dec(void)
100 {                                                  62 {
101         atomic_dec(&selinux_secmark_refcount);     63         atomic_dec(&selinux_secmark_refcount);
102 }                                                  64 }
103 EXPORT_SYMBOL_GPL(selinux_secmark_refcount_dec     65 EXPORT_SYMBOL_GPL(selinux_secmark_refcount_dec);
104                                                    66 
  This page was automatically generated by the LXR engine.