On Friday, April 18, 2014 at 12:01:42 PM, Horia Geanta wrote:
> GFP_ATOMIC memory allocation could fail.
> In this case, avoid NULL pointer dereference and notify user.
> 
> Cc: <sta...@vger.kernel.org> # 3.2+

If I recall correctly, you need to get the patch accepted into mainline before 
sending it for -stable .

> Cc: Kim Phillips <kim.phill...@freescale.com>
> Signed-off-by: Horia Geanta <horia.gea...@freescale.com>
> ---
>  drivers/crypto/caam/error.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/crypto/caam/error.c b/drivers/crypto/caam/error.c
> index 9f25f5296029..0eabd81e1a90 100644
> --- a/drivers/crypto/caam/error.c
> +++ b/drivers/crypto/caam/error.c
> @@ -16,9 +16,13 @@
>       char *tmp;                                              \
>                                                               \
>       tmp = kmalloc(sizeof(format) + max_alloc, GFP_ATOMIC);  \
> -     sprintf(tmp, format, param);                            \
> -     strcat(str, tmp);                                       \
> -     kfree(tmp);                                             \
> +     if (likely(tmp)) {                                      \
> +             sprintf(tmp, format, param);                    \
> +             strcat(str, tmp);                               \
> +             kfree(tmp);                                     \
> +     } else {                                                \
> +             strcat(str, "kmalloc failure in SPRINTFCAT");   \

This entire macro looks somewhat strange.
1) Can't you just snprintf() into $str + some offset ? Something like:
   snprintf(str + strlen(str), str_total_sz - strlen(str), format, param);
   
2) Why is noone checking if the $str has enough space for contents of $tmp ?

Best regards,
Marek Vasut
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to