diff options
Diffstat (limited to 'mpi/mpicoder.c')
-rw-r--r-- | mpi/mpicoder.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/mpi/mpicoder.c b/mpi/mpicoder.c index e0434c15f..559facd89 100644 --- a/mpi/mpicoder.c +++ b/mpi/mpicoder.c @@ -363,12 +363,15 @@ do_get_buffer( MPI a, unsigned *nbytes, int *sign, int force_secure ) #endif } - /* this is sub-optimal but we need to do the shift oepration because - * the caller has to free the returned buffer */ - for(p=buffer; !*p && *nbytes; p++, --*nbytes ) - ; - if( p != buffer ) - memmove(buffer,p, *nbytes); + if (!mpi_is_protected (a)) + { + /* this is sub-optimal but we need to do the shift operation + * because the caller has to free the returned buffer */ + for(p=buffer; !*p && *nbytes; p++, --*nbytes ) + ; + if( p != buffer ) + memmove(buffer,p, *nbytes); + } return buffer; } |