"Error in IMAP command received by server.");
}
- return ret != 0;
+ return ret != 0 && !client->common.destroyed;
}
static void imap_client_input(struct client *client)
login_proxy_free(&client->login_proxy);
if (client->ssl_proxy != NULL)
ssl_proxy_free(&client->ssl_proxy);
+ client->v.destroy(client);
client_unref(client);
}
i_free(client->virtual_user);
i_free(client->auth_mech_name);
- client->v.destroy(client);
pool_unref(&client->pool);
return FALSE;
}
{
struct pop3_client *pop3_client = (struct pop3_client *)client;
- i_free(pop3_client->last_user);
- i_free(pop3_client->apop_challenge);
+ i_free_and_null(pop3_client->last_user);
+ i_free_and_null(pop3_client->apop_challenge);
}
static char *get_apop_challenge(struct pop3_client *client)