diff options
Diffstat (limited to 'lib/mpi/mpicoder.c')
-rw-r--r-- | lib/mpi/mpicoder.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/lib/mpi/mpicoder.c b/lib/mpi/mpicoder.c index a999ee1cddc5..d995a4c0f1b6 100644 --- a/lib/mpi/mpicoder.c +++ b/lib/mpi/mpicoder.c | |||
@@ -201,16 +201,9 @@ int mpi_read_buffer(MPI a, uint8_t *buf, unsigned buf_len, unsigned *nbytes, | |||
201 | #else | 201 | #else |
202 | #error please implement for this limb size. | 202 | #error please implement for this limb size. |
203 | #endif | 203 | #endif |
204 | memcpy(p, &alimb, BYTES_PER_MPI_LIMB); | 204 | memcpy(p, (u8 *)&alimb + lzeros, BYTES_PER_MPI_LIMB - lzeros); |
205 | p += BYTES_PER_MPI_LIMB; | 205 | p += BYTES_PER_MPI_LIMB - lzeros; |
206 | if (lzeros > 0) { | 206 | lzeros = 0; |
207 | mpi_limb_t *limb1 = (void *)p - sizeof(alimb); | ||
208 | mpi_limb_t *limb2 = (void *)p - sizeof(alimb) | ||
209 | + lzeros; | ||
210 | *limb1 = *limb2; | ||
211 | p -= lzeros; | ||
212 | lzeros -= sizeof(alimb); | ||
213 | } | ||
214 | } | 207 | } |
215 | return 0; | 208 | return 0; |
216 | } | 209 | } |