2017-07-14 08:16:36 +03:00
/*
* Copyright ( c ) 2017 JingPiao Chen < chenjingpiao @ gmail . com >
2018-12-25 02:46:43 +03:00
* Copyright ( c ) 2017 - 2018 The strace developers .
2017-07-14 08:16:36 +03:00
* All rights reserved .
*
2018-12-10 03:00:00 +03:00
* SPDX - License - Identifier : LGPL - 2.1 - or - later
2017-07-14 08:16:36 +03:00
*/
# include "defs.h"
# include "netlink.h"
# include "print_fields.h"
# include <linux/selinux_netlink.h>
bool
decode_netlink_selinux ( struct tcb * const tcp ,
const struct nlmsghdr * const nlmsghdr ,
const kernel_ulong_t addr ,
Adjust prototypes of netlink parsing functions
Change the type of "len" argument that is based
on struct nlmsghdr.nlmsg_len from kernel_ulong_t to unsigned int.
* defs.h (netlink_decoder_t, DECL_NETLINK): Change "len" argument type
from kernel_ulong_t to unsigned int.
* netlink.c (decode_nlmsgerr_attr_cookie, decode_nlmsgerr,
decode_payload): Likewise.
* netlink_selinux.c (decode_netlink_selinux): Likewise.
* netlink_sock_diag.c (decode_family, decode_unix_diag_req,
decode_meminfo, decode_unix_diag_vfs, decode_unix_diag_inode,
decode_unix_diag_rqlen, decode_unix_diag_msg, decode_netlink_diag_req,
print_group, decode_netlink_diag_ring, decode_netlink_diag_flags,
decode_netlink_diag_msg, decode_packet_diag_req,
decode_packet_diag_info, decode_packet_diag_mclist,
decode_packet_diag_ring, decode_packet_diag_filter,
decode_packet_diag_msg, decode_inet_addr, decode_inet_diag_hostcond,
decode_inet_diag_markcond, decode_bytecode_data, decode_inet_diag_bc_op,
decode_inet_diag_req_compat, decode_inet_diag_req_v2,
decode_inet_diag_req, decode_inet_diag_meminfo, decode_tcpvegas_info,
decode_tcp_dctcp_info, decode_tcp_bbr_info, decode_inet_diag_msg,
decode_smc_diag_req, decode_smc_diag_conninfo, decode_smc_diag_lgrinfo,
decode_smc_diag_msg, netlink_diag_decoder_t, decode_netlink_sock_diag):
Likewise.
* nlattr.c (fetch_nlattr, decode_nlattr_with_data, decode_nlattr,
decode_nla_str, decode_nla_strn, DECODE_NLA_INTEGER): Likewise.
* nlattr.h (nla_decoder_t, DECL_NLA, decode_nlattr): Likewise.
2017-07-19 13:07:34 +03:00
const unsigned int len )
2017-07-14 08:16:36 +03:00
{
switch ( nlmsghdr - > nlmsg_type ) {
case SELNL_MSG_SETENFORCE : {
struct selnl_msg_setenforce msg ;
if ( len < sizeof ( msg ) )
printstr_ex ( tcp , addr , len , QUOTE_FORCE_HEX ) ;
else if ( ! umove_or_printaddr ( tcp , addr , & msg ) ) {
PRINT_FIELD_D ( " { " , msg , val ) ;
tprints ( " } " ) ;
}
break ;
}
case SELNL_MSG_POLICYLOAD : {
struct selnl_msg_policyload msg ;
if ( len < sizeof ( msg ) )
printstr_ex ( tcp , addr , len , QUOTE_FORCE_HEX ) ;
else if ( ! umove_or_printaddr ( tcp , addr , & msg ) ) {
PRINT_FIELD_U ( " { " , msg , seqno ) ;
tprints ( " } " ) ;
}
break ;
}
default :
return false ;
}
return true ;
}