1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-31 11:41:32 +01:00

Merge branch 'scd-serialize-bugfix' into scd-work

Conflicts:
	scd/apdu.c
This commit is contained in:
NIIBE Yutaka 2013-01-11 11:26:16 +09:00
commit ff4f9ea82f

View File

@ -3404,7 +3404,16 @@ apdu_check_keypad (int slot, int command, pininfo_t *pininfo)
pininfo->fixedlen = 0;
if (reader_table[slot].check_keypad)
return reader_table[slot].check_keypad (slot, command, pininfo);
{
int sw;
if ((sw = lock_slot (slot)))
return sw;
sw = reader_table[slot].check_keypad (slot, command, pininfo);
unlock_slot (slot);
return sw;
}
else
return SW_HOST_NOT_SUPPORTED;
}
@ -3418,8 +3427,17 @@ apdu_keypad_verify (int slot, int class, int ins, int p0, int p1,
return SW_HOST_NO_DRIVER;
if (reader_table[slot].keypad_verify)
return reader_table[slot].keypad_verify (slot, class, ins, p0, p1,
pininfo);
{
int sw;
if ((sw = lock_slot (slot)))
return sw;
sw = reader_table[slot].keypad_verify (slot, class, ins, p0, p1,
pininfo);
unlock_slot (slot);
return sw;
}
else
return SW_HOST_NOT_SUPPORTED;
}
@ -3433,8 +3451,17 @@ apdu_keypad_modify (int slot, int class, int ins, int p0, int p1,
return SW_HOST_NO_DRIVER;
if (reader_table[slot].keypad_modify)
return reader_table[slot].keypad_modify (slot, class, ins, p0, p1,
{
int sw;
if ((sw = lock_slot (slot)))
return sw;
sw = reader_table[slot].keypad_modify (slot, class, ins, p0, p1,
pininfo);
unlock_slot (slot);
return sw;
}
else
return SW_HOST_NOT_SUPPORTED;
}