From 9fca46864e1b5a9c788072113589454adb89fa97 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 13 Apr 2015 11:48:33 +0200 Subject: mpi: Fix gcry_mpi_copy for NULL opaque data. * mpi/mpiutil.c (_gcry_mpi_copy): Copy opaque only if needed. -- gcry_mpi_set_opaque allows to store NULL as opaque data. Thus we also need to take care when copying such data. Signed-off-by: Werner Koch --- mpi/mpiutil.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mpi/mpiutil.c b/mpi/mpiutil.c index fbbd3b47..71b3f1c3 100644 --- a/mpi/mpiutil.c +++ b/mpi/mpiutil.c @@ -343,7 +343,8 @@ _gcry_mpi_copy (gcry_mpi_t a) if( a && (a->flags & 4) ) { void *p = _gcry_is_secure(a->d)? xmalloc_secure ((a->sign+7)/8) : xmalloc ((a->sign+7)/8); - memcpy( p, a->d, (a->sign+7)/8 ); + if (a->d) + memcpy( p, a->d, (a->sign+7)/8 ); b = mpi_set_opaque( NULL, p, a->sign ); b->flags &= ~(16|32); /* Reset the immutable and constant flags. */ } -- cgit v1.2.1