Ticket #127: forced_muscle.patch

File forced_muscle.patch, 0.8 KB (added by harningt, 2 years ago)
  • src/libopensc/card-muscle.c

    === src/libopensc/card-muscle.c
    ==================================================================
     
    6868        sc_ctx_suppress_errors_on(card->ctx); 
    6969        i = msc_select_applet(card, muscleAppletId, 5); 
    7070        sc_ctx_suppress_errors_off(card->ctx); 
     71        /* Mark the card for muscle_init */ 
     72        card->drv_data = (void*)0xFFFFFFFF; 
    7173        return i; 
    7274} 
    7375 
     
    430432{ 
    431433        int r = 0; 
    432434        muscle_private_t *priv; 
     435         
     436        /* drv_data is set to (void*)0xFFFFFFFF in muscle_detect, 
     437         * If drv_data doesn't equal that, then we need to detect... */ 
     438        if(card->drv_data != (void*)0xFFFFFFFF) { 
     439                card->drv_data = NULL; 
     440                if(!muscle_match_card(card)) 
     441                        return SC_ERROR_INVALID_CARD; 
     442        } 
    433443 
    434444        r = sc_get_default_driver()->ops->init(card); 
    435445        if(r) return r;