summaryrefslogtreecommitdiff
path: root/pop3d.c
diff options
context:
space:
mode:
Diffstat (limited to 'pop3d.c')
-rw-r--r--pop3d.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/pop3d.c b/pop3d.c
index 56c8047..77cbfa0 100644
--- a/pop3d.c
+++ b/pop3d.c
@@ -170,9 +170,14 @@ authenticate(struct imsgev *iev, struct imsg *imsg)
if ((pw = getpwnam(req->user)) == NULL)
fatalx("authenticate: getpwnam");
- maildrop_init(imsg->hdr.peerid, pair, pw, mtype, mpath);
- close(pair[1]);
+ if (maildrop_init(imsg->hdr.peerid, pair, pw, mtype, mpath) == -1) {
+ logit(LOG_INFO, "%u: unable to fork maildrop process",
+ imsg->hdr.peerid);
+ pair[0] = -1;
+ goto end;
+ }
+ close(pair[1]);
end:
imsgev_xcompose(iev, IMSG_AUTH, imsg->hdr.peerid, 0,
pair[0], NULL, 0, "authenticate");