Re: crypto: ahash - Fix EINPROGRESS notification callback

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2017-04-10, 16:44:50 +0800, Herbert Xu wrote:
> The ahash API modifies the request's callback function in order
> to clean up after itself in some corner cases (unaligned final
> and missing finup).
> 
> When the request is complete ahash will restore the original
> callback and everything is fine.  However, when the request gets
> an EBUSY on a full queue, an EINPROGRESS callback is made while
> the request is still ongoing.
> 
> In this case the ahash API will incorrectly call its own callback.
> 
> This patch fixes the problem by creating a temporary request
> object on the stack which is used to relay EINPROGRESS back to
> the original completion function.
> 
> This patch also adds code to preserve the original flags value.
> 
> Cc: <vger@xxxxxxxxxxxxxxxxx>

Should that be stable@xxxxxxxxxxxxxxx?

> Reported-by: Sabrina Dubroca <sdubroca@xxxxxxxxxx>
> Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>

The definition of ahash_request_flags() was missing, so I added:

    static inline u32 ahash_request_flags(struct ahash_request *req)
    {
           return req->base.flags;
    }

And with this, my tests seem fine.

Tested-by: Sabrina Dubroca <sd@xxxxxxxxxxxxxxx>
Could also you change the 'Reported-by:' to that email address?


Thanks,

-- 
Sabrina



[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux