summaryrefslogtreecommitdiff
path: root/mpi/mpiutil.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2013-09-07 10:06:46 +0200
committerWerner Koch <wk@gnupg.org>2013-09-25 18:15:45 +0200
commit1c6660debdbf1e4c3e80074c846a3e3097f214bb (patch)
tree6078d1078de21e53061b09138d8df64798b325cb /mpi/mpiutil.c
parent9b7c49971588edf6acfc74bfb797eb79d19cb350 (diff)
downloadlibgcrypt-1c6660debdbf1e4c3e80074c846a3e3097f214bb.tar.gz
mpi: Change not yet used _gcry_mpi_set_opaque_copy.
* mpi/mpiutil.c (_gcry_mpi_set_opaque_copy): Change prototype. (_gcry_mpi_get_opaque_copy): Take care of gcry_malloc failure.
Diffstat (limited to 'mpi/mpiutil.c')
-rw-r--r--mpi/mpiutil.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/mpi/mpiutil.c b/mpi/mpiutil.c
index 3855dc47..c9e6b317 100644
--- a/mpi/mpiutil.c
+++ b/mpi/mpiutil.c
@@ -283,13 +283,15 @@ gcry_mpi_set_opaque( gcry_mpi_t a, void *p, unsigned int nbits )
gcry_mpi_t
-_gcry_mpi_set_opaque_copy (gcry_mpi_t a, void *p, unsigned int nbits)
+_gcry_mpi_set_opaque_copy (gcry_mpi_t a, const void *p, unsigned int nbits)
{
void *d;
unsigned int n;
n = (nbits+7)/8;
d = gcry_is_secure (p)? gcry_malloc_secure (n) : gcry_malloc (n);
+ if (!d)
+ return NULL;
memcpy (d, p, n);
return gcry_mpi_set_opaque (a, d, nbits);
}
@@ -318,7 +320,8 @@ _gcry_mpi_get_opaque_copy (gcry_mpi_t a, unsigned int *nbits)
return NULL;
n = (*nbits+7)/8;
d = gcry_is_secure (s)? gcry_malloc_secure (n) : gcry_malloc (n);
- memcpy (d, s, n);
+ if (d)
+ memcpy (d, s, n);
return d;
}