On Thu, May 22, 2025 at 3:30 PM Aditya Garg [off-list ref] wrote:
quoted
Not sure about server_fill_credential(), but I think this is also
a potential memory leak
static int auth_cram_md5(struct imap_store *ctx, const char *prompt)
{
int ret;
char *response;
response = cram(prompt, ctx->cfg->user, ctx->cfg->pass);
ret = socket_write(&ctx->imap->buf.sock, response, strlen(response));
if (ret != strlen(response))
+ free(response); // fix for the leak
return error("IMAP error: sending response failed");
free(response);
return 0;
}
So this change leads to:
imap-send.c:990:2: error: code will never be executed [-Werror,-Wunreachable-code]
free(response);
^~~~
Is that because you forgot the curly braces around the `if` body?
if (ret != strlen(response)) {
free(response);
return error("IMAP error: sending response failed");
}
free(response);