diff options
-rw-r--r-- | scd/apdu.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/scd/apdu.c b/scd/apdu.c index 54f3b302f..b32fe8014 100644 --- a/scd/apdu.c +++ b/scd/apdu.c @@ -3757,8 +3757,9 @@ send_le (int slot, int class, int ins, int p0, int p1, if (use_extended_length && (le > 256 || le < 0)) { - result_buffer_size = le < 0? 4096 : le; - result_buffer = xtrymalloc (result_buffer_size + 10); + /* Two more bytes are needed for status bytes. */ + result_buffer_size = le < 0? 4096 : (le + 2); + result_buffer = xtrymalloc (result_buffer_size); if (!result_buffer) { xfree (apdu_buffer); |