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: <stable@xxxxxxxxxxxxxxx> # 3.2+ If I recall correctly, you need to get the patch accepted into mainline before sending it for -stable . > Cc: Kim Phillips <kim.phillips@xxxxxxxxxxxxx> > Signed-off-by: Horia Geanta <horia.geanta@xxxxxxxxxxxxx> > --- > 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html