aboutsummaryrefslogtreecommitdiffstats
path: root/lib/mpi/mpicoder.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mpi/mpicoder.c')
-rw-r--r--lib/mpi/mpicoder.c13
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}