From 9dee34600028a3d55e65ee60bf4b93c3e7901aa8 Mon Sep 17 00:00:00 2001 From: Axel Lin Date: Thu, 11 May 2017 16:31:39 +0800 Subject: [PATCH] apps/smtp: Fix memory leak in smtp_send_mail_alloced error paths Call smtp_free_struct(s) in all smtp_send_mail_alloced error paths to ensure no memory leak. Signed-off-by: Axel Lin Signed-off-by: Dirk Ziegelmeier --- src/apps/smtp/smtp.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/apps/smtp/smtp.c b/src/apps/smtp/smtp.c index 8152716d..22fa02b6 100644 --- a/src/apps/smtp/smtp.c +++ b/src/apps/smtp/smtp.c @@ -483,20 +483,24 @@ smtp_send_mail_alloced(struct smtp_session *s) * - only 7-bit ASCII is allowed */ if (smtp_verify(s->to, s->to_len, 0) != ERR_OK) { - return ERR_ARG; + err = ERR_ARG; + goto leave; } if (smtp_verify(s->from, s->from_len, 0) != ERR_OK) { - return ERR_ARG; + err = ERR_ARG; + goto leave; } if (smtp_verify(s->subject, s->subject_len, 0) != ERR_OK) { - return ERR_ARG; + err = ERR_ARG; + goto leave; } #if SMTP_BODYDH if (s->bodydh == NULL) #endif /* SMTP_BODYDH */ { if (smtp_verify(s->body, s->body_len, 0) != ERR_OK) { - return ERR_ARG; + err = ERR_ARG; + goto leave; } } #endif /* SMTP_CHECK_DATA */