We used to treat 0 as "call strlen() to get the length" for
curlx_base64_encode, but it turns out this is rather fragile as we
easily do the mistake of passing in zero when the data is actually not
there and then calling strlen() is wrong.
Force the caller to pass in the correct size. A zero length input string
now returns a zero length output and a NULL pointer.
Closes #18617
*outlen = 0;
if(!insize)
- insize = strlen(inputbuff);
+ return CURLE_OK;
#if SIZEOF_SIZE_T == 4
if(insize > UINT_MAX/4)
* encoded data. Size of encoded data is returned in variable pointed by
* outlen.
*
- * Input length of 0 indicates input buffer holds a null-terminated string.
- *
* Returns CURLE_OK on success, otherwise specific error code. Function
* output shall not be considered valid unless CURLE_OK is returned.
*
fprintf(stderr, "Test %u URL encoded output length %d instead of %d\n",
i, (int)olen, (int)e->olen);
}
- if(memcmp(out, e->output, e->olen)) {
+ if(out && memcmp(out, e->output, e->olen)) {
fprintf(stderr, "Test %u URL encoded badly. Got '%s', expected '%s'\n",
i, out, e->output);
unitfail++;