From: Matthew Ogilvie Date: Fri, 21 Dec 2018 09:00:46 -0700 Subject: add query_to64_outsize() utility function Git-repo: https://gitlab.com/fetchmail/fetchmail.git Git-commit: cc6e146d516140df800da68976eb7c0aa1cef7c0 --- base64.c | 7 +++++++ fetchmail.h | 1 + 2 files changed, 8 insertions(+) Index: fetchmail-6.5.6/base64.c =================================================================== --- fetchmail-6.5.6.orig/base64.c +++ fetchmail-6.5.6/base64.c @@ -77,6 +77,13 @@ fail: return rc; } +size_t query_to64_outsize(size_t inlen) +/* Returns how much space needs to be allocated to receive the output from + * to64frombits(), including the '\0' terminator. */ +{ + return ((inlen+2)/3)*4+1; +} + int from64tobits(void *out_, const char *in, int maxlen) /** base 64 to raw bytes in quasi-big-endian order, \return count of bytes, or * -1 on error (invalid input characters, or input not properly padded with '=' Index: fetchmail-6.5.6/fetchmail.h =================================================================== --- fetchmail-6.5.6.orig/fetchmail.h +++ fetchmail-6.5.6/fetchmail.h @@ -618,6 +618,7 @@ int prc_filecheck(const char *, const fl /* base64.c */ unsigned len64frombits(unsigned inlen); /** calculate length needed to encode inlen octets. warnings: 1. caller needs to add 1 for a trailing \0 byte himself. 2. returns 0 for inlen 0! */ int to64frombits(char *, const void *, int inlen, size_t outlen); +size_t query_to64_outsize(size_t inlen); int from64tobits(void *, const char *, int mxoutlen); /* unmime.c */