s390/zcrypt: Switch to flexible array member
In preparation for FORTIFY_SOURCE performing compile-time and run-time field bounds checking for memcpy(), memmove(), and memset(), avoid intentionally reading/writing across neighboring array fields. Switch from zero-element arrays to flexible arrays so the compiler will perform appropriate bounds checking, avoiding these future warnings: In function '__fortify_memcpy', inlined from 'cca_sec2protkey' at drivers/s390/crypto/zcrypt_ccamisc.c:645:2: ./include/linux/fortify-string.h:244:4: error: call to '__write_overflow_field' declared with attribute error: detected write beyond size of field (1st parameter) In function '__fortify_memcpy', inlined from 'cca_clr2seckey' at drivers/s390/crypto/zcrypt_ccamisc.c:568:3: ./include/linux/fortify-string.h:246:4: error: call to '__read_overflow2_field' declared with attribute error: detected read beyond size of field (2nd parameter) In function '__fortify_memcpy', inlined from 'cca_genseckey' at drivers/s390/crypto/zcrypt_ccamisc.c:429:2: ./include/linux/fortify-string.h:246:4: error: call to '__read_overflow2_field' declared with attribute error: detected read beyond size of field (2nd parameter) Signed-off-by: Kees Cook <keescook@chromium.org> Link: https://lore.kernel.org/r/20210616201903.1245949-1-keescook@chromium.org Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
parent
c74d3c182a
commit
2a18a55026
|
@ -330,7 +330,7 @@ int cca_genseckey(u16 cardnr, u16 domain,
|
|||
struct {
|
||||
u16 toklen;
|
||||
u16 tokattr;
|
||||
u8 tok[0];
|
||||
u8 tok[];
|
||||
/* ... some more data ... */
|
||||
} keyblock;
|
||||
} lv3;
|
||||
|
@ -471,7 +471,7 @@ int cca_clr2seckey(u16 cardnr, u16 domain, u32 keybitsize,
|
|||
struct {
|
||||
u16 toklen;
|
||||
u16 tokattr;
|
||||
u8 tok[0];
|
||||
u8 tok[];
|
||||
/* ... some more data ... */
|
||||
} keyblock;
|
||||
} lv3;
|
||||
|
@ -596,7 +596,7 @@ int cca_sec2protkey(u16 cardnr, u16 domain,
|
|||
u16 len;
|
||||
u16 attr_len;
|
||||
u16 attr_flags;
|
||||
u8 token[0]; /* cca secure key token */
|
||||
u8 token[]; /* cca secure key token */
|
||||
} lv2;
|
||||
} __packed * preqparm;
|
||||
struct uskrepparm {
|
||||
|
|
Loading…
Reference in New Issue