Hi all: I found a bug the process auvrt generate a coredump when there is no file named audit.log, In the case the /var/log/audit/audit.log removed by someone. I make a patch to solve this problem. Index: auparse/auparse.c =================================================================== --- auparse/auparse.c (版本 814) +++ auparse/auparse.c (工作副本) @@ -806,7 +806,7 @@ case AUSOURCE_FILE: case AUSOURCE_FILE_ARRAY: // if the first time through, open file - if (au->list_idx == 0 && au->in == NULL) { + if (au->list_idx == 0 && au->in == NULL && au->source_list != NULL) { if (au->source_list[au->list_idx] == NULL) { errno = 0; return -2; [clq@localhost trunk]# auvirt Unable to open /var/log/audit/audit.log (No such file or directory) No log file Segmentation fault (core dumped) The backtrace is as follows: Loaded symbols for /lib64/ld-linux-x86-64.so.2 Core was generated by `./tools/auvirt/.libs/lt-auvirt'. Program terminated with signal 11, Segmentation fault. #0 0x00007fb2cc547b24 in retrieve_next_line (au=0x682830) at auparse.c:810 810 if (au->source_list[au->list_idx] == NULL) { Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.107.el6.x86_64 (gdb) bt #0 0x00007fb2cc547b24 in retrieve_next_line (au=0x682830) at auparse.c:810 #1 auparse_next_event (au=0x682830) at auparse.c:958 #2 0x00007fb2cc547c52 in auparse_first_record (au=) at auparse.c:1131 #3 0x00007fb2cc547d77 in ausearch_next_event (au=0x682830) at auparse.c:923 #4 0x00000000004043b8 in main (argc=, argv=) at auvirt.c:1542 (gdb) f 0 #0 0x00007fb2cc547b24 in retrieve_next_line (au=0x682830) at auparse.c:810 810 if (au->source_list[au->list_idx] == NULL) { (gdb) p *au $1 = {source = AUSOURCE_LOGS, source_list = 0x0, list_idx = 0, in = 0x0, line_number = 0, next_buf = 0x0, off = 0, cur_buf = 0x0, line_pushed = 0, le = {head = 0x0, cur = 0x0, cnt = 0, e = {sec = 0, milli = 0, serial = 0, host = 0x0}}, expr = 0x680c90, find_field = 0x0, search_where = AUSEARCH_STOP_EVENT, parse_state = EVENT_EMPTY, databuf = {flags = 0, alloc_size = 0, alloc_ptr = 0x0, offset = 0, len = 0, max_len = 0}, callback = 0, callback_user_data = 0x0, callback_user_data_destroy = 0} (gdb) p au->source_list $2 = (char **) 0x0 (gdb) Best Regards!