[dovecot-cvs] dovecot/src/master auth-process.c,1.18,1.19 imap-process.c,1.15,1.16 login-process.c,1.20,1.21 main.c,1.18,1.19 settings.c,1.30,1.31 ssl-init.c,1.4,1.5
cras at procontrol.fi
cras at procontrol.fi
Wed Dec 18 17:15:44 EET 2002
- Previous message: [dovecot-cvs] dovecot/src/lib-storage/subscription-file subscription-file.c,1.12,1.13
- Next message: [dovecot-cvs] dovecot/src/login auth-connection.c,1.13,1.14 client-authenticate.c,1.21,1.22 client.c,1.18,1.19 master.c,1.6,1.7 ssl-proxy-gnutls.c,1.1,1.2 ssl-proxy-openssl.c,1.6,1.7
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/cvs/dovecot/src/master
In directory danu:/tmp/cvs-serv3676/src/master
Modified Files:
auth-process.c imap-process.c login-process.c main.c
settings.c ssl-init.c
Log Message:
Marked all non-trivial buffer modifications with @UNSAFE tag. Several
cleanups and a couple of minor bugfixes.
Index: auth-process.c
===================================================================
RCS file: /home/cvs/dovecot/src/master/auth-process.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- auth-process.c 18 Dec 2002 04:00:01 -0000 1.18
+++ auth-process.c 18 Dec 2002 15:15:42 -0000 1.19
@@ -163,7 +163,8 @@
o_stream_unref(p->output);
io_remove(p->io);
- (void)close(p->fd);
+ if (close(p->fd) < 0)
+ i_error("close(auth) failed: %m");
i_free(p->name);
i_free(p);
}
@@ -205,6 +206,7 @@
path = t_strconcat(set_login_dir, "/", config->name, NULL);
(void)unlink(path);
(void)umask(0177); /* we want 0600 mode for the socket */
+
listen_fd = net_listen_unix(path);
if (listen_fd < 0)
i_fatal("Can't listen in UNIX socket %s: %m", path);
@@ -212,11 +214,14 @@
i_assert(listen_fd > 2);
/* set correct permissions */
- (void)chown(path, set_login_uid, set_login_gid);
+ if (chown(path, set_login_uid, set_login_gid) < 0) {
+ i_fatal("login: chown(%s, %d, %d) failed: %m",
+ path, (int)set_login_uid, (int)set_login_gid);
+ }
/* move master communication handle to 0 */
if (dup2(fd[1], 0) < 0)
- i_fatal("login: dup2() failed: %m");
+ i_fatal("login: dup2(0) failed: %m");
(void)close(fd[0]);
(void)close(fd[1]);
@@ -224,9 +229,9 @@
/* set /dev/null handle into 1 and 2, so if something is printed into
stdout/stderr it can't go anywhere where it could cause harm */
if (dup2(null_fd, 1) < 0)
- i_fatal("login: dup2() failed: %m");
+ i_fatal("login: dup2(1) failed: %m");
if (dup2(null_fd, 2) < 0)
- i_fatal("login: dup2() failed: %m");
+ i_fatal("login: dup2(2) failed: %m");
clean_child_process();
Index: imap-process.c
===================================================================
RCS file: /home/cvs/dovecot/src/master/imap-process.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- imap-process.c 18 Dec 2002 04:00:01 -0000 1.15
+++ imap-process.c 18 Dec 2002 15:15:42 -0000 1.16
@@ -109,9 +109,10 @@
const char *login_tag)
{
static char *argv[] = { NULL, NULL, NULL };
- char host[MAX_IP_LEN], title[1024];
+ const char *host;
+ char title[1024];
pid_t pid;
- int i, j, err;
+ int i, err;
if (imap_process_count == set_max_imap_processes) {
i_error("Maximum number of imap processes exceeded");
@@ -134,7 +135,8 @@
/* master */
imap_process_count++;
PID_ADD_PROCESS_TYPE(pid, PROCESS_TYPE_IMAP);
- (void)close(socket);
+ if (close(socket) < 0)
+ i_error("close(imap client) failed: %m");
return MASTER_RESULT_SUCCESS;
}
@@ -142,15 +144,12 @@
/* move the imap socket into stdin, stdout and stderr fds */
for (i = 0; i < 3; i++) {
- if (dup2(socket, i) < 0) {
- err = errno;
- for (j = 0; j < i; j++)
- (void)close(j);
- (void)close(socket);
- i_fatal("imap: dup2() failed: %m");
- }
+ if (dup2(socket, i) < 0)
+ i_fatal("imap: dup2(%d) failed: %m", i);
}
- (void)close(socket);
+
+ if (close(socket) < 0)
+ i_error("imap: close(imap client) failed: %m");
/* setup environment - set the most important environment first
(paranoia about filling up environment without noticing) */
@@ -197,7 +196,11 @@
env_put(t_strconcat("USER=", virtual_user, NULL));
env_put(t_strconcat("LOGIN_TAG=", login_tag, NULL));
- if (set_verbose_proctitle && net_ip2host(ip, host) == 0) {
+ if (set_verbose_proctitle) {
+ host = net_ip2host(ip);
+ if (host == NULL)
+ host = "??";
+
i_snprintf(title, sizeof(title), "[%s %s]", virtual_user, host);
argv[1] = title;
}
Index: login-process.c
===================================================================
RCS file: /home/cvs/dovecot/src/master/login-process.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- login-process.c 18 Dec 2002 04:00:01 -0000 1.20
+++ login-process.c 18 Dec 2002 15:15:42 -0000 1.21
@@ -79,7 +79,8 @@
if (o_stream_send(process->output, &reply, sizeof(reply)) < 0)
login_process_destroy(process);
- (void)close(request->fd);
+ if (close(request->fd) < 0)
+ i_error("close(imap client) failed: %m");
login_process_unref(process);
i_free(request);
}
@@ -212,7 +213,8 @@
o_stream_close(p->output);
io_remove(p->io);
- (void)close(p->fd);
+ if (close(p->fd) < 0)
+ i_error("close(login) failed: %m");
if (!p->listening)
login_process_remove_from_lists(p);
@@ -270,17 +272,17 @@
/* move communication handle */
if (dup2(fd[1], LOGIN_MASTER_SOCKET_FD) < 0)
- i_fatal("login: dup2() failed: %m");
+ i_fatal("login: dup2(master) failed: %m");
fd_close_on_exec(LOGIN_MASTER_SOCKET_FD, FALSE);
/* move the listen handle */
if (dup2(imap_fd, LOGIN_IMAP_LISTEN_FD) < 0)
- i_fatal("login: dup2() failed: %m");
+ i_fatal("login: dup2(imap) failed: %m");
fd_close_on_exec(LOGIN_IMAP_LISTEN_FD, FALSE);
/* move the SSL listen handle */
if (dup2(imaps_fd, LOGIN_IMAPS_LISTEN_FD) < 0)
- i_fatal("login: dup2() failed: %m");
+ i_fatal("login: dup2(imaps) failed: %m");
fd_close_on_exec(LOGIN_IMAPS_LISTEN_FD, FALSE);
/* imap_fd and imaps_fd are closed by clean_child_process() */
@@ -297,10 +299,8 @@
if (!set_login_chroot) {
/* no chrooting, but still change to the directory */
- if (chdir(set_login_dir) < 0) {
- i_fatal("chdir(%s) failed: %m",
- set_login_dir);
- }
+ if (chdir(set_login_dir) < 0)
+ i_fatal("chdir(%s) failed: %m", set_login_dir);
}
if (!set_ssl_disable) {
Index: main.c
===================================================================
RCS file: /home/cvs/dovecot/src/master/main.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- main.c 18 Dec 2002 04:00:01 -0000 1.18
+++ main.c 18 Dec 2002 15:15:42 -0000 1.19
@@ -164,9 +164,12 @@
return ip;
}
+ /* Return the first IP if there happens to be multiple. */
ret = net_gethostbyname(name, &ip, &ips_count);
- if (ret != 0)
- i_fatal("Can't resolve address: %s", name);
+ if (ret != 0) {
+ i_fatal("Can't resolve address %s: %s",
+ name, net_gethosterror(ret));
+ }
if (ips_count < 1)
i_fatal("No IPs for address: %s", name);
@@ -245,9 +248,12 @@
timeout_remove(to);
- (void)close(null_fd);
- (void)close(imap_fd);
- (void)close(imaps_fd);
+ if (close(null_fd) < 0)
+ i_error("close(null_fd) failed: %m");
+ if (close(imap_fd) < 0)
+ i_error("close(imap_fd) failed: %m");
+ if (close(imaps_fd) < 0)
+ i_error("close(imaps_fd) failed: %m");
hash_destroy(pids);
closelog();
Index: settings.c
===================================================================
RCS file: /home/cvs/dovecot/src/master/settings.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- settings.c 16 Dec 2002 14:38:38 -0000 1.30
+++ settings.c 18 Dec 2002 15:15:42 -0000 1.31
@@ -457,6 +457,8 @@
}
linenum++;
+ /* @UNSAFE: line is modified */
+
/* skip whitespace */
while (IS_WHITE(*line))
line++;
Index: ssl-init.c
===================================================================
RCS file: /home/cvs/dovecot/src/master/ssl-init.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- ssl-init.c 16 Dec 2002 08:27:58 -0000 1.4
+++ ssl-init.c 18 Dec 2002 15:15:42 -0000 1.5
@@ -32,7 +32,7 @@
_ssl_generate_parameters(fd, temp_fname);
if (close(fd) < 0)
- i_fatal("close() failed for %s: %m", temp_fname);
+ i_fatal("close(%s) failed: %m", temp_fname);
if (rename(temp_fname, fname) < 0)
i_fatal("rename(%s, %s) failed: %m", temp_fname, fname);
- Previous message: [dovecot-cvs] dovecot/src/lib-storage/subscription-file subscription-file.c,1.12,1.13
- Next message: [dovecot-cvs] dovecot/src/login auth-connection.c,1.13,1.14 client-authenticate.c,1.21,1.22 client.c,1.18,1.19 master.c,1.6,1.7 ssl-proxy-gnutls.c,1.1,1.2 ssl-proxy-openssl.c,1.6,1.7
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the dovecot-cvs
mailing list