static char *read_blob(FILE * fp, int nlines, int *bloblen)
static unsigned char *read_blob(FILE * fp, int nlines, int *bloblen)
static char *read_blob(FILE * fp, int nlines, int *bloblen){    unsigned char *blob;    char *line;    int linelen, len;    int i, j, k;    /* We expect at most 64 base64 characters, ie 48 real bytes, per line. */    blob = smalloc(48 * nlines);    len = 0;    for (i = 0; i < nlines; i++) {	line = read_body(fp);	if (!line) {	    sfree(blob);	    return NULL;	}	linelen = strlen(line);	if (linelen % 4 != 0 || linelen > 64) {	    sfree(blob);	    sfree(line);	    return NULL;	}	for (j = 0; j < linelen; j += 4) {	    k = base64_decode_atom(line + j, blob + len);	    if (!k) {		sfree(line);		sfree(blob);		return NULL;	    }	    len += k;	}	sfree(line);    }    *bloblen = len;    return blob;}