return 0;
BIO_set_mem_eof_return(bpart, 0);
}
- if (!sk_BIO_push(parts, bpart)) {
- BIO_free(bpart);
- return 0;
- }
+ if (!sk_BIO_push(parts, bpart))
+ goto err;
return 1;
} else if (part != 0) {
/* Strip (possibly CR +) LF from linebuf */
if (first) {
first = 0;
if (bpart)
- if (!sk_BIO_push(parts, bpart)) {
- BIO_free(bpart);
- return 0;
- }
+ if (!sk_BIO_push(parts, bpart))
+ goto err;
bpart = BIO_new(BIO_s_mem());
if (bpart == NULL)
return 0;
#endif
|| (flags & SMIME_CRLFEOL) != 0) {
if (BIO_puts(bpart, "\r\n") < 0)
- return 0;
+ goto err;
} else {
if (BIO_puts(bpart, "\n") < 0)
- return 0;
+ goto err;
}
}
eol = next_eol;
if (len > 0 && BIO_write(bpart, linebuf, len) != len)
- return 0;
+ goto err;
}
}
+err:
BIO_free(bpart);
return 0;
}