b64_pton_partial() takes a pointer to pointer and will update it while decoding.
Then the caller will be able to copy the correctly decoded part, even if decoding another part yielded an error and aborted the process.
This change is very invasive. One bug I introduced during development of this patch made my ssh client dysfunctional.