FREE(&pubring); FREE(&secring); FREE(&binary); FREE(&_fname);
pid_t pgp_v2_invoke_encrypt(struct pgp_vinfo *pgp,			    FILE **pgpin, FILE **pgpout, FILE **pgperr,			    int pgpinfd, int pgpoutfd, int pgperrfd,			    const char *fname, const char *uids, int sign){  char cmd[HUGE_STRING];    snprintf(cmd, sizeof(cmd),	   "%scat %s%s | %s +language=%s +pubring=%s +secring=%s +verbose=0 %s +batchmode -aeft%s %s%s %s",	   sign ? "PGPPASSFD=0; export PGPPASSFD; " : "",	   sign ? "- " : "",	   fname,	   NONULL (*pgp->binary), NONULL (*pgp->language), NONULL (*pgp->pubring), NONULL (*pgp->secring), 	   option(OPTPGPENCRYPTSELF) ? "+encrypttoself" : "",	   sign ? "s" : "",	   sign && PgpSignAs ? "-u " : "",	   sign && PgpSignAs ? PgpSignAs : "",	   uids);    return mutt_create_filter_fd(cmd, pgpin, pgpout, pgperr, 			       pgpinfd, pgpoutfd, pgperrfd);}