lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 8 Aug 2023 13:27:26 -0400
From:   Steven Rostedt <rostedt@...dmis.org>
To:     Sven Schnelle <svens@...ux.ibm.com>
Cc:     linux-kernel@...r.kernel.org
Subject: Re: [PATCH] tracing/synthetic: use union instead of casts

On Tue,  8 Aug 2023 16:21:48 +0200
Sven Schnelle <svens@...ux.ibm.com> wrote:

> +struct trace_dynamic {
> +	union {
> +		u8 as_u8;
> +		u16 as_u16;
> +		u32 as_u32;
> +		u64 as_u64;
> +		struct {
> +#ifdef CONFIG_CPU_BIG_ENDIAN
> +			u16 offset;
> +			u16 len;
> +#else
> +			u16 len;
> +			u16 offset;
> +#endif
> +		};
> +	};
> +};
> +

The "dynamic" I was using wasn't about the fields were dynamic (union), but
because the field the offset/len combo represents is of dynamic size. It's
used all over the trace_events code.

I would have in include/linux/trace_events.h (right above struct trace_entry):

/* Used to find the offset and length of dynamic fields in trace events */
struct trace_dynamic_info {
#ifdef CONFIG_CPU_BIG_ENDIAN
	u16 offset;
	u16 len;
#else
	u16 len;
	u16 offset;
#endif
};

And then it kernel/trace/trace.h:

union trace_synthetic_field {
	u8				as_u8;
	u16				as_u16;
	u32				as_u32;
	u64				as_u64;
	struct trace_dynamic_info	as_dynamic;
};

I could work on the part of the trace_dynamic_info if you want.

-- Steve

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ