lkml.org 
[lkml]   [2018]   [Apr]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRE: [PATCH v2 0/2] crypto: removing various VLAs
    Date
    From: Salvatore Mesoraca
    > Sent: 09 April 2018 14:55
    >
    > v2:
    > As suggested by Herbert Xu, the blocksize and alignmask checks
    > have been moved to crypto_check_alg.
    > So, now, all the other separate checks are not necessary.
    > Also, the defines have been moved to include/crypto/algapi.h.
    >
    > v1:
    > As suggested by Laura Abbott[1], I'm resending my patch with
    > MAX_BLOCKSIZE and MAX_ALIGNMASK defined in an header, so they
    > can be used in other places.
    > I took this opportunity to deal with some other VLAs not
    > handled in the old patch.

    If the constants are visible they need better names.
    Maybe CRYPTO_MAX_xxx.

    You can also do much better than allocating MAX_BLOCKSIZE + MAX_ALIGNMASK
    bytes by requesting 'long' aligned on-stack memory.
    The easiest way is to define a union like:

    union crypto_tmp {
    u8 buf[CRYPTO_MAX_TMP_BUF];
    long buf_align;
    };

    Then in each function:

    union tmp crypto_tmp;
    u8 *keystream = PTR_ALIGN(tmp.buf, alignmask + 1);

    I think CRYPTO_MAX_TMP_BUF needs to be MAX_BLOCKSIZE + MAX_ALIGNMASK - sizeof (long).

    David

    \
     
     \ /
      Last update: 2018-04-09 16:35    [W:3.298 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site