# HG changeset patch # User Timo Sirainen # Date 1169819928 -7200 # Node ID 18559c7e3a15a137d26db8c262f26ffad2c03271 # Parent caa07c0dbb56ae2944da74ea644b0e453042ec45 Cleanups and minor fixes diff -r caa07c0dbb56 -r 18559c7e3a15 src/auth/auth-request-handler.c --- 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); diff -r caa07c0dbb56 -r 18559c7e3a15 src/auth/mech-rpa.c --- 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; diff -r caa07c0dbb56 -r 18559c7e3a15 src/auth/passdb-checkpassword.c --- 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); diff -r caa07c0dbb56 -r 18559c7e3a15 src/imap/imap-sync.c --- 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) diff -r caa07c0dbb56 -r 18559c7e3a15 src/lib-auth/auth-server-request.c --- 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); diff -r caa07c0dbb56 -r 18559c7e3a15 src/lib-index/mail-transaction-log-view.c --- 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; } diff -r caa07c0dbb56 -r 18559c7e3a15 src/lib-index/mail-transaction-log.c --- 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++; diff -r caa07c0dbb56 -r 18559c7e3a15 src/lib-storage/index/index-mail.c --- 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) { diff -r caa07c0dbb56 -r 18559c7e3a15 src/lib/lib-signals.c --- 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) { diff -r caa07c0dbb56 -r 18559c7e3a15 src/login-common/main.c --- 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); diff -r caa07c0dbb56 -r 18559c7e3a15 src/master/login-process.c --- 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; diff -r caa07c0dbb56 -r 18559c7e3a15 src/master/ssl-init-openssl.c --- 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 diff -r caa07c0dbb56 -r 18559c7e3a15 src/plugins/quota/quota-maildir.c --- 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; diff -r caa07c0dbb56 -r 18559c7e3a15 src/pop3/commands.c --- 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."); diff -r caa07c0dbb56 -r 18559c7e3a15 src/util/rawlog.c --- 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);