avoid copying data to NULL pointer
found by clang scan-build
This commit is contained in:
@@ -271,9 +271,11 @@ ykpiv_rc ykpiv_transfer_data(ykpiv_state *state, const unsigned char *templ,
|
|||||||
}
|
}
|
||||||
return YKPIV_SIZE_ERROR;
|
return YKPIV_SIZE_ERROR;
|
||||||
}
|
}
|
||||||
|
if(out_data) {
|
||||||
memcpy(out_data, data, recv_len - 2);
|
memcpy(out_data, data, recv_len - 2);
|
||||||
out_data += recv_len - 2;
|
out_data += recv_len - 2;
|
||||||
*out_len += recv_len - 2;
|
*out_len += recv_len - 2;
|
||||||
|
}
|
||||||
in_ptr += this_size;
|
in_ptr += this_size;
|
||||||
} while(in_ptr < in_data + in_len);
|
} while(in_ptr < in_data + in_len);
|
||||||
while(*sw >> 8 == 0x61) {
|
while(*sw >> 8 == 0x61) {
|
||||||
@@ -296,10 +298,12 @@ ykpiv_rc ykpiv_transfer_data(ykpiv_state *state, const unsigned char *templ,
|
|||||||
if(*out_len + recv_len - 2 > max_out) {
|
if(*out_len + recv_len - 2 > max_out) {
|
||||||
fprintf(stderr, "Output buffer to small, wanted to write %lu, max was %lu.", *out_len + recv_len - 2, max_out);
|
fprintf(stderr, "Output buffer to small, wanted to write %lu, max was %lu.", *out_len + recv_len - 2, max_out);
|
||||||
}
|
}
|
||||||
|
if(out_data) {
|
||||||
memcpy(out_data, data, recv_len - 2);
|
memcpy(out_data, data, recv_len - 2);
|
||||||
out_data += recv_len - 2;
|
out_data += recv_len - 2;
|
||||||
*out_len += recv_len - 2;
|
*out_len += recv_len - 2;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
rc = SCardEndTransaction(state->card, SCARD_LEAVE_CARD);
|
rc = SCardEndTransaction(state->card, SCARD_LEAVE_CARD);
|
||||||
if(rc != SCARD_S_SUCCESS) {
|
if(rc != SCARD_S_SUCCESS) {
|
||||||
if(state->verbose) {
|
if(state->verbose) {
|
||||||
|
|||||||
Reference in New Issue
Block a user