c
size_t total_size = ...; // Total allocated size of *pData
size_t remaining_space = total_size;
// ... in the loop:
if (bplen > remaining_space) {
    break;
}
memcpy(&(*pData)[wpos], bptr, bplen);
remaining_space -= bplen;
