Changeset 486


Ignore:
Timestamp:
03/26/11 14:02:48 (3 years ago)
Author:
sgrubb
Message:

Add ability to interpret session and capabilities

Location:
branches/1.8
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/1.8/ChangeLog

    r485 r486  
    1414- Add optional ARM processor support 
    1515- Fix autrace to use correct syscalls on i386 systems (Peng Haitao) 
     16- In auparse, add ability to interpret session and capabilities 
    1617 
    17181.7.18 
  • branches/1.8/auparse/auparse-defs.h

    r117 r486  
    11/* auparse-defs.h -- 
    2  * Copyright 2006-07 Red Hat Inc., Durham, North Carolina. 
     2 * Copyright 2006-07, 09 Red Hat Inc., Durham, North Carolina. 
    33 * All Rights Reserved. 
    44 * 
     
    7878        AUPARSE_TYPE_CAPABILITY, AUPARSE_TYPE_SUCCESS, AUPARSE_TYPE_A0, 
    7979        AUPARSE_TYPE_A1, AUPARSE_TYPE_A2, AUPARSE_TYPE_SIGNAL,  
    80         AUPARSE_TYPE_LIST, AUPARSE_TYPE_TTY_DATA } auparse_type_t; 
     80        AUPARSE_TYPE_LIST, AUPARSE_TYPE_TTY_DATA, 
     81        AUPARSE_TYPE_SESSION, AUPARSE_TYPE_CAP_BITMAP } auparse_type_t; 
    8182 
    8283#ifdef __cplusplus 
  • branches/1.8/auparse/data_buf.c

    r1 r486  
    11/* data_buf.c -- 
    2  * Copyright 2007 Red Hat Inc., Durham, North Carolina. 
     2 * Copyright 2007,2011 Red Hat Inc., Durham, North Carolina. 
    33 * All Rights Reserved. 
    44 * 
     
    142142    } 
    143143    printf("\n"); 
     144    va_end(ap); 
    144145} 
    145146 
  • branches/1.8/auparse/interpret.c

    r270 r486  
    11/* 
    22* interpret.c - Lookup values to something more readable 
    3 * Copyright (c) 2007,08 Red Hat Inc., Durham, North Carolina. 
     3* Copyright (c) 2007-09,2011 Red Hat Inc., Durham, North Carolina. 
    44* All Rights Reserved.  
    55* 
     
    4646#include <linux/if.h>   // FIXME: remove when ipx.h is fixed 
    4747#include <linux/ipx.h> 
     48#include <linux/capability.h> 
    4849#include "auparse-defs.h" 
    4950#include "gen_tables.h" 
     
    494495        char name[NI_MAXHOST], serv[NI_MAXSERV]; 
    495496        const char *host; 
    496         char *out; 
     497        char *out = NULL; 
    497498        const char *str; 
    498499 
     
    678679} 
    679680 
     681static const char *print_cap_bitmap(const char *val) 
     682{ 
     683#define MASK(x) (1U << (x)) 
     684        unsigned long long temp; 
     685        __u32 caps[2]; 
     686        int i, found=0; 
     687        char *p, buf[600]; // 17 per cap * 33 
     688 
     689        errno = 0; 
     690        temp = strtoull(val, NULL, 16); 
     691        if (errno) { 
     692                char *out; 
     693                asprintf(&out, "conversion error(%s)", val); 
     694                return out; 
     695        } 
     696 
     697        caps[0] = temp & 0xFFFFFFFF; 
     698        caps[1] = (temp & 0xFFFFFFFF) >> 32; 
     699        p = buf; 
     700        for (i=0; i <= CAP_LAST_CAP; i++) { 
     701                if (MASK(i%32) & caps[i/32]) { 
     702                        const char *s; 
     703                        if (found) 
     704                                p = stpcpy(p, ","); 
     705                        s = cap_i2s(i); 
     706                        if (s != NULL) 
     707                                p = stpcpy(p, s); 
     708                        found = 1; 
     709                } 
     710        } 
     711        if (found == 0) 
     712                return strdup("none"); 
     713        return strdup(buf); 
     714} 
     715 
    680716static const char *print_success(const char *val) 
    681717{ 
     
    10521088} 
    10531089 
     1090static const char *print_session(const char *val) 
     1091{ 
     1092        if (strcmp(val, "4294967295") == 0) 
     1093                return strdup("unset"); 
     1094        else 
     1095                return strdup(val); 
     1096} 
     1097 
    10541098int lookup_type(const char *name) 
    10551099{ 
     
    11451189                        out = print_tty_data(val); 
    11461190                        break; 
     1191                case AUPARSE_TYPE_SESSION: 
     1192                        out = print_session(val); 
     1193                        break; 
     1194                case AUPARSE_TYPE_CAP_BITMAP: 
     1195                        out = print_cap_bitmap(val); 
     1196                        break; 
    11471197                case AUPARSE_TYPE_UNCLASSIFIED: 
    11481198                default: { 
  • branches/1.8/auparse/typetab.h

    r117 r486  
    11 
    22/* typetab.h -- 
    3  * Copyright 2007-08 Red Hat Inc., Durham, North Carolina. 
     3 * Copyright 2007-09 Red Hat Inc., Durham, North Carolina. 
    44 * All Rights Reserved. 
    55 * 
     
    4242_S(AUPARSE_TYPE_GID,            "inode_gid"     ) 
    4343_S(AUPARSE_TYPE_GID,            "new_gid"       ) 
    44 _S(AUPARSE_TYPE_SYSCALL,                "syscall"       ) 
     44_S(AUPARSE_TYPE_SYSCALL,        "syscall"       ) 
    4545_S(AUPARSE_TYPE_ARCH,           "arch"          ) 
    4646_S(AUPARSE_TYPE_EXIT,           "exit"          ) 
    47 _S(AUPARSE_TYPE_ESCAPED,                "path"          ) 
    48 _S(AUPARSE_TYPE_ESCAPED,                "comm"          ) 
    49 _S(AUPARSE_TYPE_ESCAPED,                "exe"           ) 
    50 _S(AUPARSE_TYPE_ESCAPED,                "file"          ) 
    51 _S(AUPARSE_TYPE_ESCAPED,                "name"          ) 
    52 _S(AUPARSE_TYPE_ESCAPED,                "watch"         ) 
    53 _S(AUPARSE_TYPE_ESCAPED,                "cwd"           ) 
    54 _S(AUPARSE_TYPE_ESCAPED,                "cmd"           ) 
    55 _S(AUPARSE_TYPE_ESCAPED,                "acct"          ) 
    56 _S(AUPARSE_TYPE_ESCAPED,                "dir"           ) 
    57 _S(AUPARSE_TYPE_ESCAPED,                "key"           ) 
     47_S(AUPARSE_TYPE_ESCAPED,        "path"          ) 
     48_S(AUPARSE_TYPE_ESCAPED,        "comm"          ) 
     49_S(AUPARSE_TYPE_ESCAPED,        "exe"           ) 
     50_S(AUPARSE_TYPE_ESCAPED,        "file"          ) 
     51_S(AUPARSE_TYPE_ESCAPED,        "name"          ) 
     52_S(AUPARSE_TYPE_ESCAPED,        "watch"         ) 
     53_S(AUPARSE_TYPE_ESCAPED,        "cwd"           ) 
     54_S(AUPARSE_TYPE_ESCAPED,        "cmd"           ) 
     55_S(AUPARSE_TYPE_ESCAPED,        "acct"          ) 
     56_S(AUPARSE_TYPE_ESCAPED,        "dir"           ) 
     57_S(AUPARSE_TYPE_ESCAPED,        "key"           ) 
    5858_S(AUPARSE_TYPE_PERM,           "perm"          ) 
    5959_S(AUPARSE_TYPE_PERM,           "perm_mask"     ) 
    6060_S(AUPARSE_TYPE_MODE,           "mode"          ) 
    61 _S(AUPARSE_TYPE_SOCKADDR,               "saddr"         ) 
     61_S(AUPARSE_TYPE_SOCKADDR,       "saddr"         ) 
    6262_S(AUPARSE_TYPE_FLAGS,          "flags"         ) 
    63 _S(AUPARSE_TYPE_PROMISC,                "prom"          ) 
    64 _S(AUPARSE_TYPE_PROMISC,                "old_prom"      ) 
     63_S(AUPARSE_TYPE_PROMISC,        "prom"          ) 
     64_S(AUPARSE_TYPE_PROMISC,        "old_prom"      ) 
    6565_S(AUPARSE_TYPE_CAPABILITY,     "capability"    ) 
    66 _S(AUPARSE_TYPE_SUCCESS,                "res"           ) 
    67 _S(AUPARSE_TYPE_SUCCESS,                "result"        ) 
     66_S(AUPARSE_TYPE_SUCCESS,        "res"           ) 
     67_S(AUPARSE_TYPE_SUCCESS,        "result"        ) 
    6868_S(AUPARSE_TYPE_A0,             "a0"            ) 
    6969_S(AUPARSE_TYPE_A1,             "a1"            ) 
     
    7171_S(AUPARSE_TYPE_SIGNAL,         "sig"           ) 
    7272_S(AUPARSE_TYPE_TTY_DATA,       "data"          ) 
     73_S(AUPARSE_TYPE_SESSION,        "ses"           ) 
     74_S(AUPARSE_TYPE_CAP_BITMAP,     "cap_pi"        ) 
     75_S(AUPARSE_TYPE_CAP_BITMAP,     "cap_pe"        ) 
     76_S(AUPARSE_TYPE_CAP_BITMAP,     "cap_pp"        ) 
     77_S(AUPARSE_TYPE_CAP_BITMAP,     "cap_fi"        ) 
     78_S(AUPARSE_TYPE_CAP_BITMAP,     "cap_fp"        ) 
Note: See TracChangeset for help on using the changeset viewer.