changeset 5089:18559c7e3a15 HEAD

Cleanups and minor fixes
author Timo Sirainen <tss@iki.fi>
date Fri, 26 Jan 2007 15:58:48 +0200
parents caa07c0dbb56
children 04b467f23400
files src/auth/auth-request-handler.c src/auth/mech-rpa.c src/auth/passdb-checkpassword.c src/imap/imap-sync.c src/lib-auth/auth-server-request.c src/lib-index/mail-transaction-log-view.c src/lib-index/mail-transaction-log.c src/lib-storage/index/index-mail.c src/lib/lib-signals.c src/login-common/main.c src/master/login-process.c src/master/ssl-init-openssl.c src/plugins/quota/quota-maildir.c src/pop3/commands.c src/util/rawlog.c
diffstat 15 files changed, 47 insertions(+), 36 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/auth-request-handler.c	Fri Jan 26 15:40:51 2007 +0200
+++ b/src/auth/auth-request-handler.c	Fri Jan 26 15:58:48 2007 +0200
@@ -358,10 +358,11 @@
 	unsigned int id;
 
 	data = strchr(args, '\t');
-	if (data++ == NULL) {
+	if (data == NULL) {
 		i_error("BUG: Authentication client sent broken CONT request");
 		return FALSE;
 	}
+	data++;
 
 	id = (unsigned int)strtoul(args, NULL, 10);
 
--- a/src/auth/mech-rpa.c	Fri Jan 26 15:40:51 2007 +0200
+++ b/src/auth/mech-rpa.c	Fri Jan 26 15:58:48 2007 +0200
@@ -442,8 +442,12 @@
 	unsigned char response[16];
 	buffer_t *hash_buffer;
 
+	if (strlen(credentials) != 32)
+		return FALSE;
+
 	hash_buffer = buffer_create_data(request->pool, request->pwd_md5, 16);
-	hex_to_binary(credentials, hash_buffer);
+	if (hex_to_binary(credentials, hash_buffer) < 0)
+		return FALSE;
 
 	rpa_user_response(request, response);
 	return memcmp(response, request->user_response, 16) == 0;
--- a/src/auth/passdb-checkpassword.c	Fri Jan 26 15:40:51 2007 +0200
+++ b/src/auth/passdb-checkpassword.c	Fri Jan 26 15:58:48 2007 +0200
@@ -67,18 +67,18 @@
 
 	hash_remove(module->clients, POINTER_CAST(request->pid));
 
-	if (request->input_buf != NULL &&
-	    strchr(str_c(request->input_buf), '\n') != NULL) {
-		auth_request_log_error(request->request, "checkpassword",
-				       "LF characters in checkpassword reply");
-		result = PASSDB_RESULT_INTERNAL_FAILURE;
-	}
-
 	if (result == PASSDB_RESULT_OK) {
-		request->request->extra_fields =
-			auth_stream_reply_init(request->request);
-		auth_stream_reply_import(request->request->extra_fields,
-					 str_c(request->input_buf));
+		if (strchr(str_c(request->input_buf), '\n') != NULL) {
+			auth_request_log_error(request->request,
+				"checkpassword",
+				"LF characters in checkpassword reply");
+			result = PASSDB_RESULT_INTERNAL_FAILURE;
+		} else {
+			request->request->extra_fields =
+				auth_stream_reply_init(request->request);
+			auth_stream_reply_import(request->request->extra_fields,
+						 str_c(request->input_buf));
+		}
 	}
 
 	request->callback(result, request->request);
--- a/src/imap/imap-sync.c	Fri Jan 26 15:40:51 2007 +0200
+++ b/src/imap/imap-sync.c	Fri Jan 26 15:58:48 2007 +0200
@@ -60,6 +60,7 @@
 int imap_sync_deinit(struct imap_sync_context *ctx)
 {
 	struct mailbox_status status;
+	int ret;
 
 	mail_free(&ctx->mail);
 
@@ -71,7 +72,7 @@
 		return -1;
 	}
 
-	mailbox_transaction_commit(&ctx->t, 0);
+	ret = mailbox_transaction_commit(&ctx->t, 0);
 
 	t_push();
 
@@ -88,7 +89,7 @@
 
 	t_pop();
 	i_free(ctx);
-	return 0;
+	return ret;
 }
 
 int imap_sync_more(struct imap_sync_context *ctx)
--- a/src/lib-auth/auth-server-request.c	Fri Jan 26 15:40:51 2007 +0200
+++ b/src/lib-auth/auth-server-request.c	Fri Jan 26 15:58:48 2007 +0200
@@ -206,10 +206,11 @@
 	unsigned int id;
 
 	data = strchr(args, '\t');
-	if (data++ == NULL) {
+	if (data == NULL) {
 		i_error("BUG: Authentication server sent broken CONT line");
 		return FALSE;
 	}
+	data++;
 
 	id = (unsigned int)strtoul(args, NULL, 10);
 
--- a/src/lib-index/mail-transaction-log-view.c	Fri Jan 26 15:40:51 2007 +0200
+++ b/src/lib-index/mail-transaction-log-view.c	Fri Jan 26 15:58:48 2007 +0200
@@ -183,6 +183,7 @@
 		if (file == NULL || file->hdr.file_seq != seq) {
 			if (file == NULL && max_file_seq == (uint32_t)-1) {
 				/* we just wanted to sync everything */
+				i_assert(max_file_offset == (uoff_t)-1);
 				max_file_seq = seq-1;
 				break;
 			}
--- a/src/lib-index/mail-transaction-log.c	Fri Jan 26 15:40:51 2007 +0200
+++ b/src/lib-index/mail-transaction-log.c	Fri Jan 26 15:58:48 2007 +0200
@@ -926,6 +926,8 @@
 	struct stat st;
 	const char *path;
 
+	i_assert(log->head != NULL);
+
 	if (MAIL_TRANSACTION_LOG_FILE_IN_MEMORY(log->head))
 		return 0;
 
@@ -939,8 +941,7 @@
 		}
 		/* log was deleted. just reopen/recreate it. */
 	} else {
-		if (log->head != NULL &&
-		    log->head->st_ino == st.st_ino &&
+		if (log->head->st_ino == st.st_ino &&
 		    CMP_DEV_T(log->head->st_dev, st.st_dev)) {
 			/* same file */
 			return 0;
@@ -955,10 +956,8 @@
 
 	i_assert(!file->locked);
 
-	if (log->head != NULL) {
-		if (--log->head->refcount == 0)
-			mail_transaction_logs_clean(log);
-	}
+	if (--log->head->refcount == 0)
+		mail_transaction_logs_clean(log);
 
 	log->head = file;
 	log->head->refcount++;
--- a/src/lib-storage/index/index-mail.c	Fri Jan 26 15:40:51 2007 +0200
+++ b/src/lib-storage/index/index-mail.c	Fri Jan 26 15:58:48 2007 +0200
@@ -626,7 +626,8 @@
 			}
 		}
 
-		*hdr_size = data->hdr_size;
+		if (hdr_size != NULL)
+			*hdr_size = data->hdr_size;
 	}
 
 	if (body_size != NULL) {
--- a/src/lib/lib-signals.c	Fri Jan 26 15:40:51 2007 +0200
+++ b/src/lib/lib-signals.c	Fri Jan 26 15:58:48 2007 +0200
@@ -62,7 +62,7 @@
 	unsigned char signal_buf[512];
 	unsigned char signal_mask[MAX_SIGNAL_VALUE+1];
 	ssize_t i, ret;
-	int signo;
+	unsigned int signo;
 
 	ret = read(sig_pipe_fd[0], signal_buf, sizeof(signal_buf));
 	if (ret > 0) {
--- a/src/login-common/main.c	Fri Jan 26 15:40:51 2007 +0200
+++ b/src/login-common/main.c	Fri Jan 26 15:58:48 2007 +0200
@@ -351,7 +351,7 @@
 
 int main(int argc __attr_unused__, char *argv[], char *envp[])
 {
-	const char *name, *group_name;
+	const char *group_name;
 	struct ip_addr remote_ip, local_ip;
 	unsigned int remote_port, local_port;
 	struct ssl_proxy *proxy = NULL;
@@ -386,7 +386,6 @@
 		master_fd = master_connect(group_name);
 	}
 
-	name = strrchr(argv[0], '/');
 	drop_privileges();
 
 	process_title_init(argv, envp);
--- a/src/master/login-process.c	Fri Jan 26 15:40:51 2007 +0200
+++ b/src/master/login-process.c	Fri Jan 26 15:58:48 2007 +0200
@@ -245,7 +245,7 @@
 {
 	struct login_group *group;
 	const char *name, *proto;
-	char buf[256];
+	unsigned char buf[256];
 	enum mail_protocol protocol;
 	unsigned int len;
 	ssize_t ret;
--- a/src/master/ssl-init-openssl.c	Fri Jan 26 15:40:51 2007 +0200
+++ b/src/master/ssl-init-openssl.c	Fri Jan 26 15:58:48 2007 +0200
@@ -66,7 +66,8 @@
 	for (i = 0; i < DH_PARAM_BITSIZE_COUNT; i++)
 		generate_dh_parameters(dh_param_bitsizes[i], fd, fname);
 	bits = 0;
-	write_full(fd, &bits, sizeof(bits));
+	if (write_full(fd, &bits, sizeof(bits)) < 0)
+		i_fatal("write_full() failed for file %s: %m", fname);
 }
 
 #endif
--- a/src/plugins/quota/quota-maildir.c	Fri Jan 26 15:40:51 2007 +0200
+++ b/src/plugins/quota/quota-maildir.c	Fri Jan 26 15:58:48 2007 +0200
@@ -192,12 +192,11 @@
 maildirs_check_have_changed(struct mail_storage *storage, time_t latest_mtime)
 {
 	struct maildir_list_context *ctx;
-	const char *dir;
 	time_t mtime;
 	int ret = 0;
 
 	ctx = maildir_list_init(storage);
-	while ((dir = maildir_list_next(ctx, &mtime)) != NULL) {
+	while (maildir_list_next(ctx, &mtime) != NULL) {
 		if (mtime > latest_mtime) {
 			ret = 1;
 			break;
--- a/src/pop3/commands.c	Fri Jan 26 15:40:51 2007 +0200
+++ b/src/pop3/commands.c	Fri Jan 26 15:58:48 2007 +0200
@@ -237,8 +237,12 @@
 		}
 	}
 
-	mailbox_transaction_commit(&client->trans,
-				   MAILBOX_SYNC_FLAG_FULL_WRITE);
+	if (mailbox_transaction_commit(&client->trans,
+				       MAILBOX_SYNC_FLAG_FULL_WRITE) < 0) {
+		client_send_storage_error(client);
+		client_disconnect(client, "Storage error during logout.");
+		return 1;
+	}
 
 	if (!client->deleted)
 		client_send_line(client, "+OK Logging out.");
--- a/src/util/rawlog.c	Fri Jan 26 15:40:51 2007 +0200
+++ b/src/util/rawlog.c	Fri Jan 26 15:58:48 2007 +0200
@@ -224,7 +224,7 @@
 		proxy->fd_out = open(fname, O_CREAT|O_EXCL|O_WRONLY, 0600);
 		if (proxy->fd_out == -1) {
 			i_error("rawlog_open: open() failed for %s: %m", fname);
-			close(proxy->fd_in);
+			(void)close(proxy->fd_in);
 			proxy->fd_in = -1;
 			return;
 		}
@@ -299,11 +299,11 @@
 			i_fatal("dup2(sfd, 0)");
 		if (dup2(sfd[1], 1) < 0)
 			i_fatal("dup2(sfd, 1)");
-		close(sfd[0]);
-		close(sfd[1]);
+		(void)close(sfd[0]);
+		(void)close(sfd[1]);
 		return;
 	}
-	close(sfd[1]);
+	(void)close(sfd[1]);
 
 	restrict_access_by_env(TRUE);