@@ -1918,11 +1918,11 @@ unsigned char *buffer_p; size_t init_buffer_len, size; uint16_t respcode; int send_ret; - CACKEY_DEBUG_PRINTF("Called."); + CACKEY_DEBUG_PRINTF("Called with buffer_len = %llu", (unsigned long long) buffer_len); init_buffer_len = buffer_len; cmd[2] = oid[0]; cmd[3] = oid[1]; @@ -1957,11 +1957,11 @@ CACKEY_DEBUG_PRINTF("APDU GET DATA returned %lu bytes, which is too short for a BER-TLV response", (unsigned long) buffer_len); return(-1); } - size = buffer_len; + size = init_buffer_len; buffer_p = cackey_read_bertlv_tag(buffer, &buffer_len, 0x53, NULL, &size); if (buffer_p == NULL) { CACKEY_DEBUG_PRINTF("Tag decoding failed, returning in error."); @@ -2601,11 +2601,11 @@ cackey_pcsc_id_type check_id_type; struct cackey_pcsc_identity *curr_id; struct cackey_tlv_entity *ccc_tlv, *ccc_curr, *app_tlv, *app_curr; unsigned char *piv_oid, piv_oid_pivauth[] = {NISTSP800_73_3_OID_PIVAUTH}, piv_oid_signature[] = {NISTSP800_73_3_OID_SIGNATURE}, piv_oid_keymgt[] = {NISTSP800_73_3_OID_KEYMGT}; unsigned char curr_aid[7]; - unsigned char buffer[8192], *buffer_p, *tmpbuf; + unsigned char buffer[1024 * 32], *buffer_p, *tmpbuf; unsigned long outidx = 0; char *piv_label; cackey_ret transaction_ret; ssize_t read_ret; size_t buffer_len, tmpbuflen;