X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=mts%2Fsmtp%2Fsmtp.c;h=05e292ff96ff5991c9213818ed803b8e18f9f766;hb=7e3a3c499d1637d633d385c1058947c02676e3c5;hp=37a7b07c7c32d629a17fb16c98073e15d264e695;hpb=7b98850d3b8b2453b473fdfb6db52f4aa3fe39b6;p=mmh diff --git a/mts/smtp/smtp.c b/mts/smtp/smtp.c index 37a7b07..05e292f 100644 --- a/mts/smtp/smtp.c +++ b/mts/smtp/smtp.c @@ -144,7 +144,6 @@ static char *EHLOset (char *); static int sm_fwrite(char *, int); static int sm_fputs(char *); static int sm_fputc(int); -static int sm_getc(void); static void sm_fflush(void); static int sm_fgets(char *, int, FILE *); @@ -326,6 +325,13 @@ sendmail_init (char *client, char *server, int watch, int verbose, client = "localhost"; #endif +#ifdef CYRUS_SASL + sasl_inbuffer = malloc(SASL_MAXRECVBUF); + if (!sasl_inbuffer) + return sm_ierror("Unable to allocate %d bytes for read buffer", + SASL_MAXRECVBUF); +#endif /* CYRUS_SASL */ + if (pipe (pdi) == NOTOK) return sm_ierror ("no pipes"); if (pipe (pdo) == NOTOK) { @@ -897,20 +903,12 @@ sm_auth_sasl(char *user, char *mechlist, char *inhost) return NOTOK; } sasl_outbuflen = 0; - - sasl_inbuffer = malloc(SASL_MAXRECVBUF); - - if (sasl_inbuffer == NULL) { - sm_ierror("Unable to allocate %d bytes for SASL input " - "buffer", SASL_MAXRECVBUF); - free(sasl_outbuffer); - return NOTOK; - } sasl_inbuflen = 0; sasl_inptr = sasl_inbuffer; } else { sasl_outbuffer = NULL; - sasl_inbuffer = NULL; + /* Don't NULL out sasl_inbuffer because it could be used in + sm_fgetc (). */ } sasl_complete = 1;