1. 12 Dec, 2018 6 commits
  2. 31 Aug, 2018 1 commit
  3. 23 Aug, 2018 1 commit
  4. 22 Aug, 2018 11 commits
  5. 21 Aug, 2018 2 commits
  6. 16 Aug, 2018 9 commits
  7. 15 Aug, 2018 2 commits
  8. 09 Aug, 2018 1 commit
    • Jason Andryuk's avatar
      vreader: Handle read failure · 652b01db
      Jason Andryuk authored
      If a command fails, card_status will not match VCARD_DONE.  That will
      trigger the assert and abort the process.  Instead, handle VCARD_FAIL and
      return an error in that case.  Client software can then deal with the
      error, and we continue running to handle future commands.
      
      This can be triggered by removing the physical smartcard mid-operation.
      
      The setup is qemu <-> vscclient <-> pcscd with passthru:
      vscclient -e 'use_hw=yes hw_type=passthru'
      
      In a Windows VM, I ran `certutil -scinfo` from a cmd window.  While it
      was running, I pulled out my smart card.  Without this patch, vscclient
      terminates.  With it, vscclient continues running.
      
      The call stack is:
      vreader_xfr_bytes
        vcard_process_apdu
          vcard_process_applet_apdu
            apdu_cb
      
      apdu_cb can return VCARD_FAIL for send_receive or
      vcard_response_new_data failure.
      Signed-off-by: 's avatarJason Andryuk <jandryuk@gmail.com>
      Acked-by: 's avatarJakub Jelen <jjelen@redhat.com>
      652b01db
  9. 08 Aug, 2018 3 commits
  10. 06 Aug, 2018 4 commits