• Gustavo A. R. Silva's avatar
    USB: wusbcore: crypto: Remove VLA usage · 225b3dc9
    Gustavo A. R. Silva authored
    In preparation to enabling -Wvla, remove VLA and replace it
    with dynamic memory allocation instead.
    
    The use of stack Variable Length Arrays needs to be avoided, as they
    can be a vector for stack exhaustion, which can be both a runtime bug
    or a security flaw. Also, in general, as code evolves it is easy to
    lose track of how big a VLA can get. Thus, we can end up having runtime
    failures that are hard to debug.
    
    Also, fixed as part of the directive to remove all VLAs from
    the kernel: https://lkml.org/lkml/2018/3/7/621
    
    Notice that in this particular case, an alternative to kzalloc is kcalloc,
    in which case the code would look as follows instead:
    
    iv = kcalloc(crypto_skcipher_ivsize(tfm_cbc), sizeof(*iv), GFP_KERNEL);
    
    but if the data type of _iv_ never changes, or the type size is always one
    byte, kzalloc is good enough.
    Signed-off-by: default avatarGustavo A. R. Silva <gustavo@embeddedor.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    225b3dc9
crypto.c 15.6 KB