tree 52d054ccbbae1d0e516331fb41d8628ea6fcc5e0
parent f70ee5ec8fc59ba2d905e6daf0d395edf6fb461d
author Johannes Schlumberger <asso@doriath.informatik.uni-erlangen.de> 1174427758 +1100
committer Herbert Xu <herbert@gondor.apana.org.au> 1174427758 +1100

[CRYPTO] doc: Fix typo in hash example

there is a tiny bug in Documentation/crypto/api-intro.txt.
The file has the following example code:

struct scatterlist sg[2];
[...]
if (crypto_hash_digest(&desc, &sg, 2, result))

which does not match the declaration of crypto_hash_digest() in
include/linux/crypto.h.

(static inline int crypto_hash_digest(struct hash_desc *desc,
	struct scatterlist *sg, unsigned int nbytes, u8 *out)

The code in the example passes the address of a pointer (an array actually) as
the second argument, while the function expects the pointer itself.

I have attached a patch to fix this.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
