Re: [PATCH 06/10] x86/tdx: Mark message.str as nonstring

From: Kees Cook
Date: Thu Feb 06 2025 - 21:37:40 EST


On Thu, Feb 06, 2025 at 05:12:11PM -0800, Dave Hansen wrote:
> On 2/6/25 17:00, Kees Cook wrote:
> > +++ b/arch/x86/coco/tdx/tdx.c
> > @@ -170,7 +170,7 @@ static void __noreturn tdx_panic(const char *msg)
> > /* Define register order according to the GHCI */
> > struct { u64 r14, r15, rbx, rdi, rsi, r8, r9, rdx; };
> >
> > - char str[64];
> > + char str[64] __nonstring;
> > } message;
>
> So, the patch itself makes sense. But it does end up looking kinda
> funky. We call it a "str"ing and then annotate it as not a string.

Yeah, this is true all over the place. It's a string, just not a
NUL-terminated string: *sob*

> It doesn't have to be done in this patch, but it does seem like we
> should probably not be using 'char' and also shouldn't call it anything
> close to "string". Maybe:
>
> u8 message[64] __nonstring;
> } message;

message.message ;)

message.chars?
message.bytes?

> In any case, feel free to carry the annotation in your tree:
>
> Acked-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>

Thanks!

-Kees

--
Kees Cook