Does `i2d_DSA_SIG` not automatically allocate an `unsigned char *` if you pass `unsigned char **` pointing at NULL?

And for my own edification could you explain why creating a buffer of this length is correct?