aboutsummaryrefslogtreecommitdiffstats
path: root/lib/mpi
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2011-12-07 06:58:26 -0500
committerJames Morris <jmorris@namei.org>2011-12-07 08:09:23 -0500
commitfe0e94c5a7e5335ba0d200e7d3e26e9f80cda4b1 (patch)
treee11c25e3cecf762931eba576c50a12372039c412 /lib/mpi
parentde353533753e048b5c4658f0a42365937527ac45 (diff)
mpi/mpi-mpow: NULL dereference on allocation failure
We can't call mpi_free() on the elements if the first kzalloc() fails. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Dmitry Kasatkin <dmitry.kasatkin@intel.com> Signed-off-by: James Morris <jmorris@namei.org>
Diffstat (limited to 'lib/mpi')
-rw-r--r--lib/mpi/mpi-mpow.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/mpi/mpi-mpow.c b/lib/mpi/mpi-mpow.c
index 4cc75933c5a7..7328d0d6c748 100644
--- a/lib/mpi/mpi-mpow.c
+++ b/lib/mpi/mpi-mpow.c
@@ -73,7 +73,7 @@ int mpi_mulpowm(MPI res, MPI *basearray, MPI *exparray, MPI m)
73 73
74 G = kzalloc((1 << k) * sizeof *G, GFP_KERNEL); 74 G = kzalloc((1 << k) * sizeof *G, GFP_KERNEL);
75 if (!G) 75 if (!G)
76 goto nomem; 76 goto err_out;
77 77
78 /* and calculate */ 78 /* and calculate */
79 tmp = mpi_alloc(mpi_get_nlimbs(m) + 1); 79 tmp = mpi_alloc(mpi_get_nlimbs(m) + 1);
@@ -129,5 +129,6 @@ nomem:
129 for (i = 0; i < (1 << k); i++) 129 for (i = 0; i < (1 << k); i++)
130 mpi_free(G[i]); 130 mpi_free(G[i]);
131 kfree(G); 131 kfree(G);
132err_out:
132 return rc; 133 return rc;
133} 134}