> -----Original Message----- > From: gjoyce@xxxxxxxxxxxxxxxxxx <gjoyce@xxxxxxxxxxxxxxxxxx> > Sent: Friday, August 19, 2022 5:32 PM > To: linux-block@xxxxxxxxxxxxxxx > Cc: linuxppc-dev@xxxxxxxxxxxxxxxx; jonathan.derrick@xxxxxxxxx; > brking@xxxxxxxxxxxxxxxxxx; msuchanek@xxxxxxx; mpe@xxxxxxxxxxxxxx; > nayna@xxxxxxxxxxxxx; axboe@xxxxxxxxx; akpm@xxxxxxxxxxxxxxxxxxxx; > gjoyce@xxxxxxxxxxxxxxxxxx; linux-efi@xxxxxxxxxxxxxxx; > keyrings@xxxxxxxxxxxxxxx; dhowells@xxxxxxxxxx; jarkko@xxxxxxxxxx > Subject: [PATCH v4 2/3] powerpc/pseries: PLPKS SED Opal keystore support > > +++ b/arch/powerpc/platforms/pseries/plpks_sed_ops.c ... > +struct plpks_sed_object_data { > + u_char version; > + u_char pad1[7]; > + u_long authority; > + u_long range; > + u_int key_len; > + u_char key[32]; > +}; ... > +/* > + * Read the SED Opal key from PLPKS given the label > + */ > +int sed_read_key(char *keyname, char *key, u_int *keylen) > +{ ... > + *keylen = be32_to_cpu(data->key_len); > + > + if (var.data) { > + memcpy(key, var.data + offset, var.datalen - offset); > + key[*keylen] = '\0'; Is there a guarantee that key_len is always < sizeof key, or does that need to be checked in more places?