diff --git a/src/libopensc/padding.c b/src/libopensc/padding.c index b9dbd31d..798ae6ef 100644 --- a/src/libopensc/padding.c +++ b/src/libopensc/padding.c @@ -225,7 +225,8 @@ int sc_pkcs1_encode(struct sc_context *ctx, unsigned long flags, switch(pad_algo) { case SC_ALGORITHM_RSA_PAD_NONE: /* padding done by card => nothing to do */ - memcpy(out, tmp, tmp_len); + if (out != tmp) + memcpy(out, tmp, tmp_len); *out_len = tmp_len; return SC_SUCCESS; case SC_ALGORITHM_RSA_PAD_PKCS1: