mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
scd: more pinpad fix.
* scd/apdu.c (check_pcsc_pinpad): Set ->minlen and ->maxlen only when those are specified. (pcsc_pinpad_modify): Remove old check code. -- GnuPG-bug-id: 1549
This commit is contained in:
parent
32989ad2b1
commit
037dea9dd5
13
scd/apdu.c
13
scd/apdu.c
@ -2177,8 +2177,11 @@ check_pcsc_pinpad (int slot, int command, pininfo_t *pininfo)
|
||||
{
|
||||
int r;
|
||||
|
||||
pininfo->minlen = reader_table[slot].pcsc.pinmin;
|
||||
pininfo->maxlen = reader_table[slot].pcsc.pinmax;
|
||||
if (reader_table[slot].pcsc.pinmin >= 0)
|
||||
pininfo->minlen = reader_table[slot].pcsc.pinmin;
|
||||
|
||||
if (reader_table[slot].pcsc.pinmax >= 0)
|
||||
pininfo->maxlen = reader_table[slot].pcsc.pinmax;
|
||||
|
||||
if ((command == ISO7816_VERIFY && reader_table[slot].pcsc.verify_ioctl != 0)
|
||||
|| (command == ISO7816_CHANGE_REFERENCE_DATA
|
||||
@ -2303,12 +2306,6 @@ pcsc_pinpad_modify (int slot, int class, int ins, int p0, int p1,
|
||||
if (!pininfo->maxlen)
|
||||
pininfo->maxlen = 15;
|
||||
|
||||
/* Note that the 25 is the maximum value the SPR532 allows. */
|
||||
if (pininfo->minlen < 1 || pininfo->minlen > 25
|
||||
|| pininfo->maxlen < 1 || pininfo->maxlen > 25
|
||||
|| pininfo->minlen > pininfo->maxlen)
|
||||
return SW_HOST_INV_VALUE;
|
||||
|
||||
pin_modify = xtrymalloc (len);
|
||||
if (!pin_modify)
|
||||
return SW_HOST_OUT_OF_CORE;
|
||||
|
Loading…
x
Reference in New Issue
Block a user