diff --git a/libraries/libapparmor/src/grammar.y b/libraries/libapparmor/src/grammar.y index e318da7a7..c9f1d4330 100644 --- a/libraries/libapparmor/src/grammar.y +++ b/libraries/libapparmor/src/grammar.y @@ -196,15 +196,15 @@ other_audit: TOK_TYPE_OTHER audit_msg TOK_MSG_REST syslog_type: syslog_date TOK_ID TOK_SYSLOG_KERNEL audit_id key_list - { ret_record->version = AA_RECORD_SYNTAX_V2; } + { ret_record->version = AA_RECORD_SYNTAX_V2; free($2); } | syslog_date TOK_ID TOK_SYSLOG_KERNEL key_type audit_id key_list - { ret_record->version = AA_RECORD_SYNTAX_V2; } + { ret_record->version = AA_RECORD_SYNTAX_V2; free($2); } | syslog_date TOK_ID TOK_SYSLOG_KERNEL TOK_DMESG_STAMP audit_id key_list - { ret_record->version = AA_RECORD_SYNTAX_V2; } + { ret_record->version = AA_RECORD_SYNTAX_V2; free($2); free($4); } | syslog_date TOK_ID TOK_SYSLOG_KERNEL TOK_DMESG_STAMP key_type audit_id key_list - { ret_record->version = AA_RECORD_SYNTAX_V2; } + { ret_record->version = AA_RECORD_SYNTAX_V2; free($2); free($4); } | syslog_date TOK_ID TOK_SYSLOG_USER key_list - { ret_record->version = AA_RECORD_SYNTAX_V2; } + { ret_record->version = AA_RECORD_SYNTAX_V2; free($2); } ; /* when audit dispatches a message it doesn't prepend the audit type string */ @@ -229,8 +229,10 @@ audit_id: TOK_AUDIT TOK_OPEN_PAREN TOK_AUDIT_DIGITS TOK_PERIOD TOK_AUDIT_DIGITS free($7); } ; -syslog_date: TOK_DATE_MONTH TOK_DIGITS TOK_TIME { /* do nothing? */ } - | TOK_DATE TOK_TIME { /* do nothing */ } +syslog_date: TOK_DATE_MONTH TOK_DIGITS TOK_TIME + { free($1); free($3); /* do nothing */ } + | TOK_DATE TOK_TIME + { free($1); free($2); /* do nothing */ } ; key_list: key diff --git a/libraries/libapparmor/src/libaalogparse.c b/libraries/libapparmor/src/libaalogparse.c index 730e386a6..78180f14f 100644 --- a/libraries/libapparmor/src/libaalogparse.c +++ b/libraries/libapparmor/src/libaalogparse.c @@ -81,6 +81,10 @@ void free_record(aa_log_record *record) free(record->net_protocol); if (record->net_sock_type != NULL) free(record->net_sock_type); + if (record->net_local_addr != NULL) + free(record->net_local_addr); + if (record->net_foreign_addr != NULL) + free(record->net_foreign_addr); if (record->dbus_bus != NULL) free(record->dbus_bus); if (record->dbus_path != NULL)