Changeset 575


Ignore:
Timestamp:
10/22/11 14:57:33 (3 years ago)
Author:
sgrubb
Message:

Update auparse to handle virt events

Location:
branches/1.8
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/1.8/ChangeLog

    r574 r575  
    1818- Report server issues to remote client 
    1919- Update ausearch parsing 
     20- Update auparse to handle virt events 
    2021 
    21221.7.18 
  • branches/1.8/auparse/Makefile.am

    r264 r575  
    11# Makefile.am --  
    2 # Copyright 2006-08 Red Hat Inc., Durham, North Carolina. 
     2# Copyright 2006-08,2011 Red Hat Inc., Durham, North Carolina. 
    33# All Rights Reserved. 
    44# 
     
    4444 
    4545BUILT_SOURCES = captabs.h clone-flagtabs.h epoll_ctls.h famtabs.h \ 
    46         fcntl-cmdtabs.h flagtabs.h ipctabs.h open-flagtabs.h \ 
     46        fcntl-cmdtabs.h flagtabs.h icmptypetabs.h ipctabs.h \ 
     47        nfprototabs.h open-flagtabs.h \ 
    4748        seeks.h socktabs.h typetabs.h 
    4849noinst_PROGRAMS = gen_captabs_h gen_clone-flagtabs_h gen_epoll_ctls_h \ 
    4950        gen_famtabs_h gen_fcntl-cmdtabs_h gen_flagtabs_h \ 
    50         gen_ipctabs_h gen_open-flagtabs_h gen_seeks_h \ 
     51        gen_icmptypetabs_h gen_ipctabs_h gen_nfprototabs_h \ 
     52        gen_open-flagtabs_h gen_seeks_h \ 
    5153        gen_socktabs_h gen_typetabs_h 
    5254 
     
    8486        ./gen_fcntl-cmdtabs_h --i2s fcntl > $@ 
    8587 
     88gen_icmptypetabs_h_SOURCES = ../lib/gen_tables.c ../lib/gen_tables.h icmptypetab.h 
     89gen_icmptypetabs_h_CFLAGS = $(AM_CFLAGS) '-DTABLE_H="icmptypetab.h"' 
     90icmptypetabs.h: gen_icmptypetabs_h Makefile 
     91        ./gen_icmptypetabs_h --i2s icmptype > $@ 
     92 
    8693gen_ipctabs_h_SOURCES = ../lib/gen_tables.c ../lib/gen_tables.h ipctab.h 
    8794gen_ipctabs_h_CFLAGS = $(AM_CFLAGS) '-DTABLE_H="ipctab.h"' 
    8895ipctabs.h: gen_ipctabs_h Makefile 
    8996        ./gen_ipctabs_h --i2s ipc > $@ 
     97 
     98gen_nfprototabs_h_SOURCES = ../lib/gen_tables.c ../lib/gen_tables.h nfprototab.h 
     99gen_nfprototabs_h_CFLAGS = $(AM_CFLAGS) '-DTABLE_H="nfprototab.h"' 
     100nfprototabs.h: gen_nfprototabs_h Makefile 
     101        ./gen_nfprototabs_h --i2s nfproto > $@ 
    90102 
    91103gen_open_flagtabs_h_SOURCES = ../lib/gen_tables.c ../lib/gen_tables.h \ 
  • branches/1.8/auparse/auparse-defs.h

    r486 r575  
    11/* auparse-defs.h -- 
    2  * Copyright 2006-07, 09 Red Hat Inc., Durham, North Carolina. 
     2 * Copyright 2006-07,09,2011 Red Hat Inc., Durham, North Carolina. 
    33 * All Rights Reserved. 
    44 * 
     
    7979        AUPARSE_TYPE_A1, AUPARSE_TYPE_A2, AUPARSE_TYPE_SIGNAL,  
    8080        AUPARSE_TYPE_LIST, AUPARSE_TYPE_TTY_DATA, 
    81         AUPARSE_TYPE_SESSION, AUPARSE_TYPE_CAP_BITMAP } auparse_type_t; 
     81        AUPARSE_TYPE_SESSION, AUPARSE_TYPE_CAP_BITMAP, AUPARSE_TYPE_NFPROTO, 
     82        AUPARSE_TYPE_ICMPTYPE, AUPARSE_TYPE_PROTOCOL, 
     83        AUPARSE_TYPE_ADDR } auparse_type_t; 
    8284 
    8385#ifdef __cplusplus 
  • branches/1.8/auparse/captab.h

    r135 r575  
    5757_S(32,  "mac_override"          ) 
    5858_S(33,  "mac_admin"             ) 
     59_S(34,  "syslog"                ) 
     60_S(35,  "wake_alarm"            ) 
    5961 
  • branches/1.8/auparse/interpret.c

    r486 r575  
    7575#include "seeks.h" 
    7676#include "typetabs.h" 
     77#include "nfprototabs.h" 
     78#include "icmptypetabs.h" 
    7779 
    7880typedef enum { AVC_UNSET, AVC_DENIED, AVC_GRANTED } avc_t; 
     
    500502        slen = strlen(val)/2; 
    501503        host = au_unescape((char *)val); 
     504        if (host == NULL) { 
     505                asprintf(&out, "malformed host(%s)", val); 
     506                return out; 
     507        } 
    502508        saddr = (struct sockaddr *)host; 
    503509 
     
    944950} 
    945951 
     952static const char *print_nfproto(const char *val) 
     953{ 
     954        int proto; 
     955        char *out; 
     956        const char *s; 
     957 
     958        errno = 0; 
     959        proto = strtoul(val, NULL, 10); 
     960        if (errno) { 
     961                asprintf(&out, "conversion error(%s)", val); 
     962                return out; 
     963        } 
     964 
     965        s = nfproto_i2s(proto); 
     966        if (s != NULL) 
     967                return strdup(s); 
     968        asprintf(&out, "unknown netfilter protocol (%s)", val); 
     969        return out; 
     970} 
     971 
     972static const char *print_icmptype(const char *val) 
     973{ 
     974        int icmptype; 
     975        char *out; 
     976        const char *s; 
     977 
     978        errno = 0; 
     979        icmptype = strtoul(val, NULL, 10); 
     980        if (errno) { 
     981                asprintf(&out, "conversion error(%s)", val); 
     982                return out; 
     983        } 
     984 
     985        s = icmptype_i2s(icmptype); 
     986        if (s != NULL) 
     987                return strdup(s); 
     988        asprintf(&out, "unknown icmp type (%s)", val); 
     989        return out; 
     990} 
     991 
     992static const char *print_protocol(const char *val) 
     993{ 
     994        int i; 
     995        char *out; 
     996 
     997        errno = 0; 
     998        i = strtoul(val, NULL, 10); 
     999        if (errno)  
     1000                asprintf(&out, "conversion error(%s)", val); 
     1001        else { 
     1002                struct protoent *p = getprotobynumber(i); 
     1003                if (p) 
     1004                        out = strdup(p->p_name); 
     1005                else 
     1006                        out = strdup("undefined protocol"); 
     1007        } 
     1008        return out; 
     1009} 
     1010 
     1011static const char *print_addr(const char *val) 
     1012{ 
     1013        char *out = strdup(val); 
     1014        return out; 
     1015} 
     1016 
    9461017static const char *print_list(const char *val) 
    9471018{ 
     
    11081179{ 
    11091180        const nvlist *nv = &r->nv; 
    1110         int type, comma = 0; 
     1181        int type; 
    11111182        nvnode *n; 
    11121183        const char *out; 
     
    11151186 
    11161187        /* Do some fixups */ 
    1117         if (r->type == AUDIT_EXECVE && name[0] == 'a') 
     1188        if (r->type == AUDIT_EXECVE && name[0] == 'a' && strcmp(name, "argc")) 
    11181189                type = AUPARSE_TYPE_ESCAPED; 
    11191190        else if (r->type == AUDIT_AVC && strcmp(name, "saddr") == 0) 
     
    11211192        else if (r->type == AUDIT_USER_TTY && strcmp(name, "msg") == 0) 
    11221193                type = AUPARSE_TYPE_ESCAPED; 
     1194        else if (r->type == AUDIT_NETFILTER_PKT && strcmp(name, "saddr") == 0) 
     1195                type = AUPARSE_TYPE_ADDR; 
    11231196        else if (strcmp(name, "acct") == 0) { 
    11241197                if (val[0] == '"') 
     
    11951268                        out = print_cap_bitmap(val); 
    11961269                        break; 
     1270                case AUPARSE_TYPE_NFPROTO: 
     1271                        out = print_nfproto(val); 
     1272                        break;  
     1273                case AUPARSE_TYPE_ICMPTYPE: 
     1274                        out = print_icmptype(val); 
     1275                        break;  
     1276                case AUPARSE_TYPE_PROTOCOL: 
     1277                        out = print_protocol(val); 
     1278                        break;  
     1279                case AUPARSE_TYPE_ADDR: 
     1280                        out = print_addr(val); 
     1281                        break; 
    11971282                case AUPARSE_TYPE_UNCLASSIFIED: 
    1198                 default: { 
    1199                         char *out2; 
    1200                         if (comma) 
    1201                                 asprintf(&out2, "%s,", val); 
    1202                         else 
    1203                                 out2 = strdup(val); 
    1204                         out = out2; 
    1205                         } 
     1283                default: 
     1284                        out = strdup(val); 
     1285                        break; 
    12061286        } 
    12071287 
  • branches/1.8/auparse/nvlist.h

    r88 r575  
    3838static inline nvnode *nvlist_get_cur(const nvlist *l) { return l->cur; } 
    3939nvnode *nvlist_next(nvlist *l) hidden; 
    40 static inline const char *nvlist_get_cur_name(const nvlist *l) {return l->cur->name;} 
    41 static inline const char *nvlist_get_cur_val(const nvlist *l) {return l->cur->val;} 
    42 static inline const char *nvlist_get_cur_val_interp(const nvlist *l) {return l->cur->interp_val;} 
     40static inline const char *nvlist_get_cur_name(const nvlist *l) {if (l->cur) return l->cur->name; else return NULL;} 
     41static inline const char *nvlist_get_cur_val(const nvlist *l) {if (l->cur) return l->cur->val; else return NULL;} 
     42static inline const char *nvlist_get_cur_val_interp(const nvlist *l) {if (l->cur) return l->cur->interp_val; else return NULL;} 
    4343int nvlist_get_cur_type(const rnode *r) hidden; 
    4444const char *nvlist_interp_cur_val(const rnode *r) hidden; 
  • branches/1.8/auparse/typetab.h

    r486 r575  
    1  
    21/* typetab.h -- 
    3  * Copyright 2007-09 Red Hat Inc., Durham, North Carolina. 
     2 * Copyright 2007-09,2011 Red Hat Inc., Durham, North Carolina. 
    43 * All Rights Reserved. 
    54 * 
     
    5655_S(AUPARSE_TYPE_ESCAPED,        "dir"           ) 
    5756_S(AUPARSE_TYPE_ESCAPED,        "key"           ) 
     57_S(AUPARSE_TYPE_ESCAPED,        "vm"            ) 
     58_S(AUPARSE_TYPE_ESCAPED,        "old-disk"      ) 
     59_S(AUPARSE_TYPE_ESCAPED,        "new-disk"      ) 
     60_S(AUPARSE_TYPE_ESCAPED,        "device"        ) 
     61_S(AUPARSE_TYPE_ESCAPED,        "cgroup"        ) 
    5862_S(AUPARSE_TYPE_PERM,           "perm"          ) 
    5963_S(AUPARSE_TYPE_PERM,           "perm_mask"     ) 
     
    7781_S(AUPARSE_TYPE_CAP_BITMAP,     "cap_fi"        ) 
    7882_S(AUPARSE_TYPE_CAP_BITMAP,     "cap_fp"        ) 
     83_S(AUPARSE_TYPE_NFPROTO,        "family"        ) 
     84_S(AUPARSE_TYPE_ICMPTYPE,       "icmptype"      ) 
     85_S(AUPARSE_TYPE_PROTOCOL,       "proto"         ) 
     86_S(AUPARSE_TYPE_ADDR,           "addr"          ) 
Note: See TracChangeset for help on using the changeset viewer.