[dovecot-cvs] dovecot/src/login-common master.c,1.11,1.12
cras at dovecot.org
cras at dovecot.org
Wed Nov 24 18:46:18 EET 2004
- Previous message: [dovecot-cvs]
dovecot/src/master auth-process.c, 1.68, 1.69 common.h,
1.20, 1.21 login-process.c, 1.61, 1.62 mail-process.c, 1.62,
1.63 main.c, 1.57, 1.58 master-settings.c, 1.75, 1.76
- Next message: [dovecot-cvs] dovecot/src/lib-index mail-index-sync.c,1.40,1.41
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /var/lib/cvs/dovecot/src/login-common
In directory talvi:/tmp/cvs-serv5988
Modified Files:
master.c
Log Message:
Don't access freed memory.
Index: master.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/login-common/master.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- master.c 19 Oct 2004 01:17:39 -0000 1.11
+++ master.c 24 Nov 2004 16:46:15 -0000 1.12
@@ -24,16 +24,20 @@
static void request_handle(struct master_login_reply *reply)
{
struct client *client;
+ master_callback_t *master_callback;
client = hash_lookup(master_requests, POINTER_CAST(reply->tag));
if (client == NULL)
i_fatal("Master sent reply with unknown tag %u", reply->tag);
+ master_callback = client->master_callback;
client->master_tag = 0;
- client->master_callback(client, reply->success);
client->master_callback = NULL;
hash_remove(master_requests, POINTER_CAST(reply->tag));
+
+ master_callback(client, reply->success);
+ /* NOTE: client may be destroyed now */
}
void master_request_login(struct client *client, master_callback_t *callback,
- Previous message: [dovecot-cvs]
dovecot/src/master auth-process.c, 1.68, 1.69 common.h,
1.20, 1.21 login-process.c, 1.61, 1.62 mail-process.c, 1.62,
1.63 main.c, 1.57, 1.58 master-settings.c, 1.75, 1.76
- Next message: [dovecot-cvs] dovecot/src/lib-index mail-index-sync.c,1.40,1.41
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the dovecot-cvs
mailing list