mpi: Change not yet used _gcry_mpi_set_opaque_copy.
authorWerner Koch <wk@gnupg.org>
Sat, 7 Sep 2013 08:06:46 +0000 (10:06 +0200)
committerWerner Koch <wk@gnupg.org>
Wed, 25 Sep 2013 16:15:45 +0000 (18:15 +0200)
* mpi/mpiutil.c (_gcry_mpi_set_opaque_copy): Change prototype.
(_gcry_mpi_get_opaque_copy): Take care of gcry_malloc failure.

mpi/mpiutil.c
src/mpi.h

index 3855dc4..c9e6b31 100644 (file)
@@ -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;
 }
 
index 279c485..780d5eb 100644 (file)
--- a/src/mpi.h
+++ b/src/mpi.h
@@ -135,7 +135,7 @@ void _gcry_mpi_swap( gcry_mpi_t a, gcry_mpi_t b);
 gcry_mpi_t _gcry_mpi_new (unsigned int nbits);
 gcry_mpi_t _gcry_mpi_snew (unsigned int nbits);
 gcry_mpi_t _gcry_mpi_set_opaque_copy (gcry_mpi_t a,
-                                      void *p, unsigned int nbits);
+                                      const void *p, unsigned int nbits);
 void *_gcry_mpi_get_opaque_copy (gcry_mpi_t a, unsigned int *nbits);
 int _gcry_mpi_is_neg (gcry_mpi_t a);
 void _gcry_mpi_neg (gcry_mpi_t w, gcry_mpi_t u);