From: Markus Armbruster Date: Sat, 26 Nov 2011 15:06:01 +0000 (+0100) Subject: Check for mailbox creation failure X-Git-Tag: v4.3.29~5 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=cda63a40d811744c617b18565f091cf5d3a872bd Check for mailbox creation failure Deity command add logs the failure, utility program files reports it and exits unsuccessfully. Before, this failure was silently ignored. --- diff --git a/src/lib/common/mailbox.c b/src/lib/common/mailbox.c index c749eddd7..15418ca41 100644 --- a/src/lib/common/mailbox.c +++ b/src/lib/common/mailbox.c @@ -27,12 +27,13 @@ * mailbox.c: Mailbox file access * * Known contributors to this file: - * Markus Armbruster, 2009 + * Markus Armbruster, 2009-2011 */ #include #include +#include #include #include #include @@ -49,11 +50,18 @@ mailbox(char *buf, natid cn) /* * Create an empty telegram file named MBOX. + * Return 0 on success, -1 on failure. */ int mailbox_create(char *mbox) { - close(creat(mbox, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP)); + int fd; + + fd = creat(mbox, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP); + if (fd < 0 || close(fd) < 0) { + logerror("Can't create mailbox %s (%s)", mbox, strerror(errno)); + return -1; + } return 0; } diff --git a/src/util/files.c b/src/util/files.c index c5e78a845..986ab6f6a 100644 --- a/src/util/files.c +++ b/src/util/files.c @@ -139,9 +139,11 @@ main(int argc, char *argv[]) exit(1); } for (i = 0; i < MAXNOC; i++) { - mailbox_create(mailbox(buf, i)); + if (mailbox_create(mailbox(buf, i)) < 0) + exit(1); } - mailbox_create(annfil); + if (mailbox_create(annfil) < 0) + exit(1); nat_reset(&nat, 0, "POGO", "peter", STAT_GOD); putnat(&nat);