diff src/pop3/commands.c @ 3879:928229f8b3e6 HEAD

deinit, unref, destroy, close, free, etc. functions now take a pointer to their data pointer, and set it to NULL. This makes double-frees less likely to cause security holes.
author Timo Sirainen <tss@iki.fi>
date Sat, 14 Jan 2006 20:47:20 +0200
parents 55df57c028d4
children 904c53275e83
line wrap: on
line diff
--- a/src/pop3/commands.c	Sat Jan 14 19:23:22 2006 +0200
+++ b/src/pop3/commands.c	Sat Jan 14 20:47:20 2006 +0200
@@ -213,9 +213,9 @@
 			}
 		}
 	}
-	mail_free(mail);
+	mail_free(&mail);
 
-	if (mailbox_search_deinit(ctx) < 0)
+	if (mailbox_search_deinit(&ctx) < 0)
 		ret = FALSE;
 	return ret;
 }
@@ -231,8 +231,8 @@
 		}
 	}
 
-	mailbox_transaction_commit(client->trans, MAILBOX_SYNC_FLAG_FULL_WRITE);
-	client->trans = NULL;
+	mailbox_transaction_commit(&client->trans,
+				   MAILBOX_SYNC_FLAG_FULL_WRITE);
 
 	if (!client->deleted)
 		client_send_line(client, "+OK Logging out.");
@@ -258,8 +258,8 @@
 
 static void fetch_deinit(struct fetch_context *ctx)
 {
-	(void)mailbox_search_deinit(ctx->search_ctx);
-	mail_free(ctx->mail);
+	(void)mailbox_search_deinit(&ctx->search_ctx);
+	mail_free(&ctx->mail);
 	i_free(ctx);
 }
 
@@ -443,7 +443,7 @@
 	}
 
 	/* forget all our seen flag updates as well.. */
-	mailbox_transaction_rollback(client->trans);
+	mailbox_transaction_rollback(&client->trans);
 	client->trans = mailbox_transaction_begin(client->mailbox, 0);
 
 	if (enable_last_command) {
@@ -463,8 +463,8 @@
 					      MAIL_SEEN) < 0)
 				break;
 		}
-		mail_free(mail);
-		(void)mailbox_search_deinit(search_ctx);
+		mail_free(&mail);
+		(void)mailbox_search_deinit(&search_ctx);
 	}
 
 	client_send_line(client, "+OK");
@@ -579,15 +579,15 @@
 		if (ret == 0 && ctx->message == 0) {
 			/* output is being buffered, continue when there's
 			   more space */
-			str_free(str);
+			str_free(&str);
 			return 0;
 		}
 	}
-	str_free(str);
+	str_free(&str);
 
 	/* finished */
-	mail_free(ctx->mail);
-	(void)mailbox_search_deinit(ctx->search_ctx);
+	mail_free(&ctx->mail);
+	(void)mailbox_search_deinit(&ctx->search_ctx);
 
 	client->cmd = NULL;