1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-05-28 21:50:02 +02:00

* mpicoder.c (do_get_buffer): Avoid zero length allocation.

Checked that all callers behave properly when NBYTES returns 0 as
the length of the allocated buffer.
This commit is contained in:
Werner Koch 2002-09-20 07:40:01 +00:00
parent 0b180a7b9a
commit 4948f99eb4
2 changed files with 12 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2002-09-20 Werner Koch <wk@gnupg.org>
* mpicoder.c (do_get_buffer): Avoid zero length allocation.
Checked that all callers behave properly when NBYTES returns 0 as
the length of the allocated buffer.
2002-09-10 Werner Koch <wk@gnupg.org> 2002-09-10 Werner Koch <wk@gnupg.org>
* mpi-bit.c (mpi_normalize): Replaced the check for protected by * mpi-bit.c (mpi_normalize): Replaced the check for protected by

View File

@ -332,12 +332,15 @@ do_get_buffer( MPI a, unsigned *nbytes, int *sign, int force_secure )
byte *p, *buffer; byte *p, *buffer;
mpi_limb_t alimb; mpi_limb_t alimb;
int i; int i;
unsigned int n;
if( sign ) if( sign )
*sign = a->sign; *sign = a->sign;
*nbytes = a->nlimbs * BYTES_PER_MPI_LIMB; *nbytes = n = a->nlimbs * BYTES_PER_MPI_LIMB;
p = buffer = force_secure || mpi_is_secure(a) ? m_alloc_secure( *nbytes) if (!n)
: m_alloc( *nbytes ); n++; /* avoid zero length allocation */
p = buffer = force_secure || mpi_is_secure(a) ? m_alloc_secure(n)
: m_alloc(n);
for(i=a->nlimbs-1; i >= 0; i-- ) { for(i=a->nlimbs-1; i >= 0; i-- ) {
alimb = a->d[i]; alimb = a->d[i];