mirror of
git://git.gnupg.org/gnupg.git
synced 2024-11-04 20:38:50 +01:00
* mpicoder.c (mpi_read): If we must fail due to a oversize (generally
corrupt) MPI, make sure the number of bytes we read is valid so we can skip the rest of the bad packet (in hopes the whole stream isn't invalid).
This commit is contained in:
parent
742682bf95
commit
ec0cc1f135
@ -1,3 +1,10 @@
|
|||||||
|
2004-09-29 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
|
* mpicoder.c (mpi_read): If we must fail due to a oversize
|
||||||
|
(generally corrupt) MPI, make sure the number of bytes we read is
|
||||||
|
valid so we can skip the rest of the bad packet (in hopes the
|
||||||
|
whole stream isn't invalid).
|
||||||
|
|
||||||
2004-05-20 David Shaw <dshaw@jabberwocky.com>
|
2004-05-20 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
* longlong.h: Typo.
|
* longlong.h: Typo.
|
||||||
|
@ -80,15 +80,16 @@ mpi_read(IOBUF inp, unsigned *ret_nread, int secure)
|
|||||||
|
|
||||||
if( (c = iobuf_get(inp)) == -1 )
|
if( (c = iobuf_get(inp)) == -1 )
|
||||||
goto leave;
|
goto leave;
|
||||||
|
nread++;
|
||||||
nbits = c << 8;
|
nbits = c << 8;
|
||||||
if( (c = iobuf_get(inp)) == -1 )
|
if( (c = iobuf_get(inp)) == -1 )
|
||||||
goto leave;
|
goto leave;
|
||||||
|
nread++;
|
||||||
nbits |= c;
|
nbits |= c;
|
||||||
if( nbits > MAX_EXTERN_MPI_BITS ) {
|
if( nbits > MAX_EXTERN_MPI_BITS ) {
|
||||||
log_error("mpi too large (%u bits)\n", nbits);
|
log_error("mpi too large (%u bits)\n", nbits);
|
||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
nread = 2;
|
|
||||||
|
|
||||||
nbytes = (nbits+7) / 8;
|
nbytes = (nbits+7) / 8;
|
||||||
nlimbs = (nbytes+BYTES_PER_MPI_LIMB-1) / BYTES_PER_MPI_LIMB;
|
nlimbs = (nbytes+BYTES_PER_MPI_LIMB-1) / BYTES_PER_MPI_LIMB;
|
||||||
|
Loading…
Reference in New Issue
Block a user