Function report |
Source Code:kernel\audit.c |
Create Date:2022-07-28 11:23:16 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:audit_receive_msg
Proto:static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
Type:int
Parameter:
Type | Parameter | Name |
---|---|---|
struct sk_buff * | skb | |
struct nlmsghdr * | nlh |
1178 | msg_type = Message content |
1180 | char * ctx = NULL |
1187 | seq = Sequence number |
1192 | Case msg_type == Get status |
1199 | pid of auditd process = auditd_pid_vnr - Return the auditd PID relative to the namespace* Description:* Returns the PID in relation to the namespace, 0 on failure. |
1201 | waiting messages limit = Number of outstanding audit_buffers allowed.* When set to zero, this means unlimited. |
1203 | messages waiting in queue = skb_queue_len - get queue length*@list_: list to measure* Return the length of an &sk_buff queue. |
1207 | Break |
1209 | Case msg_type == Set status (enable/disable/auditd) |
1213 | No 3D Now!( & s, data, min_t - return minimum of two values, using the specified type*@type: data type to use*@x: first value*@y: second value(size_t, size of s , data_len)) |
1214 | If Bit mask for valid entries & Mask values Then |
1215 | err = audit_set_enabled( 1 = enabled, 0 = disabled ) |
1219 | If Bit mask for valid entries & AUDIT_STATUS_FAILURE Then |
1220 | err = audit_set_failure( Failure-to-log action ) |
1224 | If Bit mask for valid entries & AUDIT_STATUS_PID Then |
1231 | new_pid = pid of auditd process |
1233 | req_pid = task_tgid(current process) |
1241 | audit_replace(req_pid) |
1243 | auditd_pid = auditd_pid_vnr - Return the auditd PID relative to the namespace* Description:* Returns the PID in relation to the namespace, 0 on failure. |
1244 | If auditd_pid Then |
1246 | If new_pid Then |
1247 | audit_log_config_change("audit_pid", new_pid, auditd_pid, 0) |
1249 | Return -EEXIST |
1252 | If pid_vnr(req_pid) != auditd_pid Then |
1253 | audit_log_config_change("audit_pid", new_pid, auditd_pid, 0) |
1255 | Return -EACCES |
1259 | If new_pid Then |
1264 | If audit_enabled != AUDIT_OFF Then audit_log_config_change("audit_pid", new_pid, auditd_pid, err ? 0 : 1) |
1273 | wake_up_interruptible( & kauditd_wait) |
1274 | Else |
1275 | If audit_enabled != AUDIT_OFF Then audit_log_config_change("audit_pid", new_pid, auditd_pid, 1) |
1284 | If Bit mask for valid entries & AUDIT_STATUS_RATE_LIMIT Then |
1289 | If Bit mask for valid entries & AUDIT_STATUS_BACKLOG_LIMIT Then |
1290 | err = audit_set_backlog_limit( waiting messages limit ) |
1294 | If Bit mask for valid entries & AUDIT_STATUS_BACKLOG_WAIT_TIME Then |
1295 | If size of s > Length of message including header Then Return -EINVAL |
1297 | If message queue wait timeout > 10 * AUDIT_BACKLOG_WAIT_TIME Then Return -EINVAL |
1303 | If Bit mask for valid entries == AUDIT_STATUS_LOST Then |
1306 | audit_log_config_change("lost", 0, lost, 1) |
1307 | Return lost |
1309 | Break |
1311 | Case msg_type == Get which features are enabled |
1316 | Case msg_type == Turn an audit feature on or off |
1317 | If data_len < sizeof(structaudit_features) Then Return -EINVAL |
1319 | err = audit_set_feature(data) |
1322 | Break |
1323 | Case msg_type == Message from userspace -- deprecated |
1325 | Case msg_type == More user space messages ...AUDIT_LAST_USER_MSG2 |
1326 | If Not audit_enabled && msg_type != We filter this differently Then Return 0 |
1330 | If err == 1 Then |
1333 | err = 0 |
1334 | If msg_type == Non-ICANON TTY input meaning Then |
1335 | err = tty_audit_push() |
1336 | If err Then Break |
1339 | audit_log_user_recv_msg( & ab, msg_type) |
1340 | If msg_type != Non-ICANON TTY input meaning Then |
1346 | Else |
1354 | Break |
1355 | Case msg_type == Add syscall filtering rule |
1356 | Case msg_type == Delete syscall filtering rule |
1357 | If data_len < sizeof(structaudit_rule_data) Then Return -EINVAL |
1359 | If audit_enabled == AUDIT_LOCKED Then |
1367 | Return -EPERM |
1370 | Break |
1371 | Case msg_type == List syscall filtering rules |
1372 | err = audit_list_rules_send - list the audit rules*@request_skb: skb of request we are replying to (used to target the reply)*@seq: netlink audit message sequence (serial) number |
1373 | Break |
1374 | Case msg_type == Trim junk from watched tree |
1375 | audit_trim_trees() |
1380 | Break |
1381 | Case msg_type == Append to watched tree |
1390 | No 3D Now!(sizes, bufp, 2 * sizeof(u32)) |
1393 | old = audit_unpack_string( & bufp, & msglen, sizes[0]) |
1398 | new = audit_unpack_string( & bufp, & msglen, sizes[1]) |
1405 | err = audit_tag_tree(old, new) |
1417 | Break |
1419 | Case msg_type == Get info about sender of signal to auditd |
1420 | len = 0 |
1421 | If audit_sig_sid Then |
1422 | err = security_secid_to_secctx(audit_sig_sid, & ctx, & len) |
1426 | sig_data = Allocation memory |
1427 | If Not sig_data Then |
1428 | If audit_sig_sid Then security_release_secctx(ctx, len) |
1430 | Return -ENOMEM |
1433 | pid = audit_sig_pid |
1434 | If audit_sig_sid Then |
1435 | No 3D Now!(ctx, ctx, len) |
1436 | security_release_secctx(ctx, len) |
1441 | Break |
1442 | Case msg_type == Get TTY auditing status |
1448 | 1 = enabled, 0 = disabled = Not Not (t & AUDIT_TTY_LOG_PASSWD) |
1451 | Break |
1453 | Case msg_type == Set TTY auditing status |
1460 | No 3D Now!( & s, data, min_t - return minimum of two values, using the specified type*@type: data type to use*@x: first value*@y: second value(size_t, size of s , data_len)) |
1462 | If 1 = enabled, 0 = disabled != 0 && 1 = enabled, 0 = disabled != 1 || 1 = enabled, 0 = disabled != 0 && 1 = enabled, 0 = disabled != 1 Then err = -EINVAL |
1468 | Else |
1473 | 1 = enabled, 0 = disabled = Not Not (t & AUDIT_TTY_LOG_PASSWD) |
1482 | Break |
1484 | Default |
Name | Describe |
---|---|
audit_receive | audit_receive - receive messages from a netlink control socket*@skb: the message buffer* Parse the provided skb and deal with any messages that may be present,* malformed skbs are discarded. |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |