[PATCH 02/27] netlink: add a basic parser of NETLINK_CRYPTO messages

Dmitry V. Levin ldv at altlinux.org
Sat Jul 22 18:53:37 UTC 2017


On Sat, Jul 22, 2017 at 08:43:32PM +0800, JingPiao Chen wrote:
> * configure.ac (AC_CHECK_DECLS): Add CRYPTO_MSG_DELRNG.
> * netlink_crypto.c: New file.
> * Makefile.am (strace_SOURCES): Add it.
> * defs.h (decode_netlink_crypto): New prototype.
> * netlink.c (netlink_decoders): Add NETLINK_CRYPTO.
> * xlat/crypto_nl_attrs.in: New file.
> ---
>  Makefile.am             |  1 +
>  configure.ac            |  1 +
>  defs.h                  |  3 ++
>  netlink.c               |  3 ++
>  netlink_crypto.c        | 92 +++++++++++++++++++++++++++++++++++++++++++++++++
>  xlat/crypto_nl_attrs.in | 12 +++++++
>  6 files changed, 112 insertions(+)
>  create mode 100644 netlink_crypto.c
>  create mode 100644 xlat/crypto_nl_attrs.in
> 
> diff --git a/Makefile.am b/Makefile.am
> index 8411f26..5d365e2 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -183,6 +183,7 @@ strace_SOURCES =	\
>  	net.c		\
>  	netlink.c       \
>  	netlink.h	\
> +	netlink_crypto.c \
>  	netlink_sock_diag.h \
>  	netlink_inet_diag.c \
>  	netlink_netlink_diag.c \
> diff --git a/configure.ac b/configure.ac
> index 4f5bc02..2c6e254 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -520,6 +520,7 @@ AC_CHECK_DECLS(m4_normalize([
>  ]),,, [#include <linux/loop.h>])
>  
>  AC_CHECK_DECLS(m4_normalize([
> +	CRYPTO_MSG_DELRNG,
>  	CTL_PROC,
>  	CTL_ARLAN,
>  	CTL_S390DBF,

Why CRYPTO_MSG_DELRNG is checked in linux/sysctl.h?

> diff --git a/defs.h b/defs.h
> index 4048915..9d99575 100644
> --- a/defs.h
> +++ b/defs.h
> @@ -711,6 +711,9 @@ typedef bool (*netlink_decoder_t)(struct tcb *, const struct nlmsghdr *,
>  extern bool								\
>  decode_netlink_ ## name(struct tcb *, const struct nlmsghdr *,		\
>  			kernel_ulong_t addr, unsigned int len)
> +#ifdef HAVE_LINUX_CRYPTOUSER_H
> +DECL_NETLINK(crypto);
> +#endif
>  DECL_NETLINK(selinux);
>  DECL_NETLINK(sock_diag);

Why decode_netlink_crypto declaration is ifdef'ed?

[...]
> +bool
> +decode_netlink_crypto(struct tcb *const tcp,
> +		      const struct nlmsghdr *const nlmsghdr,
> +		      const kernel_ulong_t addr,
> +		      const unsigned int len)
> +{
> +	switch (nlmsghdr->nlmsg_type) {
> +	case CRYPTO_MSG_NEWALG:
> +	case CRYPTO_MSG_DELALG:
> +	case CRYPTO_MSG_UPDATEALG:
> +	case CRYPTO_MSG_GETALG:
> +		decode_crypto_user_alg(tcp, addr, len);
> +		break;
> +#ifdef HAVE_CRYPTO_MSG_DELRNG
> +	case CRYPTO_MSG_DELRNG:
> +#endif
> +	default:
> +		return false;
> +	}

Is CRYPTO_MSG_DELRNG case needed?


-- 
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20170722/2afb8727/attachment.bin>


More information about the Strace-devel mailing list