LCOV - code coverage report
Current view: top level - net/netlabel - netlabel_user.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 18 0.0 %
Date: 2014-04-07 Functions: 0 2 0.0 %
Branches: 0 14 0.0 %

           Branch data     Line data    Source code
       1                 :            : /*
       2                 :            :  * NetLabel NETLINK Interface
       3                 :            :  *
       4                 :            :  * This file defines the NETLINK interface for the NetLabel system.  The
       5                 :            :  * NetLabel system manages static and dynamic label mappings for network
       6                 :            :  * protocols such as CIPSO and RIPSO.
       7                 :            :  *
       8                 :            :  * Author: Paul Moore <paul@paul-moore.com>
       9                 :            :  *
      10                 :            :  */
      11                 :            : 
      12                 :            : /*
      13                 :            :  * (c) Copyright Hewlett-Packard Development Company, L.P., 2006
      14                 :            :  *
      15                 :            :  * This program is free software;  you can redistribute it and/or modify
      16                 :            :  * it under the terms of the GNU General Public License as published by
      17                 :            :  * the Free Software Foundation; either version 2 of the License, or
      18                 :            :  * (at your option) any later version.
      19                 :            :  *
      20                 :            :  * This program is distributed in the hope that it will be useful,
      21                 :            :  * but WITHOUT ANY WARRANTY;  without even the implied warranty of
      22                 :            :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
      23                 :            :  * the GNU General Public License for more details.
      24                 :            :  *
      25                 :            :  * You should have received a copy of the GNU General Public License
      26                 :            :  * along with this program;  if not, write to the Free Software
      27                 :            :  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
      28                 :            :  *
      29                 :            :  */
      30                 :            : 
      31                 :            : #include <linux/init.h>
      32                 :            : #include <linux/types.h>
      33                 :            : #include <linux/list.h>
      34                 :            : #include <linux/socket.h>
      35                 :            : #include <linux/audit.h>
      36                 :            : #include <linux/tty.h>
      37                 :            : #include <linux/security.h>
      38                 :            : #include <linux/gfp.h>
      39                 :            : #include <net/sock.h>
      40                 :            : #include <net/netlink.h>
      41                 :            : #include <net/genetlink.h>
      42                 :            : #include <net/netlabel.h>
      43                 :            : #include <asm/bug.h>
      44                 :            : 
      45                 :            : #include "netlabel_mgmt.h"
      46                 :            : #include "netlabel_unlabeled.h"
      47                 :            : #include "netlabel_cipso_v4.h"
      48                 :            : #include "netlabel_user.h"
      49                 :            : 
      50                 :            : /*
      51                 :            :  * NetLabel NETLINK Setup Functions
      52                 :            :  */
      53                 :            : 
      54                 :            : /**
      55                 :            :  * netlbl_netlink_init - Initialize the NETLINK communication channel
      56                 :            :  *
      57                 :            :  * Description:
      58                 :            :  * Call out to the NetLabel components so they can register their families and
      59                 :            :  * commands with the Generic NETLINK mechanism.  Returns zero on success and
      60                 :            :  * non-zero on failure.
      61                 :            :  *
      62                 :            :  */
      63                 :          0 : int __init netlbl_netlink_init(void)
      64                 :            : {
      65                 :            :         int ret_val;
      66                 :            : 
      67                 :          0 :         ret_val = netlbl_mgmt_genl_init();
      68         [ #  # ]:          0 :         if (ret_val != 0)
      69                 :            :                 return ret_val;
      70                 :            : 
      71                 :          0 :         ret_val = netlbl_cipsov4_genl_init();
      72         [ #  # ]:          0 :         if (ret_val != 0)
      73                 :            :                 return ret_val;
      74                 :            : 
      75                 :          0 :         ret_val = netlbl_unlabel_genl_init();
      76         [ #  # ]:          0 :         if (ret_val != 0)
      77                 :          0 :                 return ret_val;
      78                 :            : 
      79                 :            :         return 0;
      80                 :            : }
      81                 :            : 
      82                 :            : /*
      83                 :            :  * NetLabel Audit Functions
      84                 :            :  */
      85                 :            : 
      86                 :            : /**
      87                 :            :  * netlbl_audit_start_common - Start an audit message
      88                 :            :  * @type: audit message type
      89                 :            :  * @audit_info: NetLabel audit information
      90                 :            :  *
      91                 :            :  * Description:
      92                 :            :  * Start an audit message using the type specified in @type and fill the audit
      93                 :            :  * message with some fields common to all NetLabel audit messages.  Returns
      94                 :            :  * a pointer to the audit buffer on success, NULL on failure.
      95                 :            :  *
      96                 :            :  */
      97                 :          0 : struct audit_buffer *netlbl_audit_start_common(int type,
      98                 :            :                                                struct netlbl_audit *audit_info)
      99                 :            : {
     100                 :            :         struct audit_buffer *audit_buf;
     101                 :            :         char *secctx;
     102                 :            :         u32 secctx_len;
     103                 :            : 
     104         [ #  # ]:          0 :         if (audit_enabled == 0)
     105                 :            :                 return NULL;
     106                 :            : 
     107                 :          0 :         audit_buf = audit_log_start(current->audit_context, GFP_ATOMIC, type);
     108         [ #  # ]:          0 :         if (audit_buf == NULL)
     109                 :            :                 return NULL;
     110                 :            : 
     111                 :          0 :         audit_log_format(audit_buf, "netlabel: auid=%u ses=%u",
     112                 :            :                          from_kuid(&init_user_ns, audit_info->loginuid),
     113                 :            :                          audit_info->sessionid);
     114                 :            : 
     115   [ #  #  #  # ]:          0 :         if (audit_info->secid != 0 &&
     116                 :          0 :             security_secid_to_secctx(audit_info->secid,
     117                 :            :                                      &secctx,
     118                 :            :                                      &secctx_len) == 0) {
     119                 :          0 :                 audit_log_format(audit_buf, " subj=%s", secctx);
     120                 :          0 :                 security_release_secctx(secctx, secctx_len);
     121                 :            :         }
     122                 :            : 
     123                 :          0 :         return audit_buf;
     124                 :            : }

Generated by: LCOV version 1.9