summaryrefslogtreecommitdiff
path: root/libmailutils/base/amd.c
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2011-10-06 11:44:06 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2011-10-15 16:24:18 +0300
commit85032d0e724bcba34a61458c44034336e15b9cbe (patch)
tree3fbcc0a2750dfd9786c9c7133cd1a11b69f278d7 /libmailutils/base/amd.c
parent5e5b68fd028495f7076a576df26962bbdf51ac63 (diff)
downloadmailutils-85032d0e724bcba34a61458c44034336e15b9cbe.tar.gz
mailutils-85032d0e724bcba34a61458c44034336e15b9cbe.tar.bz2
Bugfixes.
* libmailutils/base/amd.c (amd_open): Return error if the mailbox cannot be opened for the required access permissions. (amd_message_stream_open): Fix condition for determining r/w access. * mh/mh_list.c (eval_extras): Break the loop if mu_header_aget_field_name fails.
Diffstat (limited to 'libmailutils/base/amd.c')
-rw-r--r--libmailutils/base/amd.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/libmailutils/base/amd.c b/libmailutils/base/amd.c
index f73f74035..a63651aab 100644
--- a/libmailutils/base/amd.c
+++ b/libmailutils/base/amd.c
@@ -365,10 +365,15 @@ amd_open (mu_mailbox_t mailbox, int flags)
else
return errno;
}
-
+
if (!S_ISDIR (st.st_mode))
return EINVAL;
+ if (access (amd->name,
+ (flags & (MU_STREAM_WRITE|MU_STREAM_APPEND)) ?
+ W_OK : R_OK | X_OK))
+ return errno;
+
if (mailbox->locker == NULL)
mu_locker_create (&mailbox->locker, "/dev/null", 0);
@@ -1674,7 +1679,7 @@ amd_message_stream_open (struct _amd_message *mhm)
}
/* The message should be at least readable */
- if (amd->mailbox->flags & (MU_STREAM_RDWR|MU_STREAM_WRITE|MU_STREAM_APPEND))
+ if (amd->mailbox->flags & (MU_STREAM_WRITE|MU_STREAM_APPEND))
flags |= MU_STREAM_RDWR;
else
flags |= MU_STREAM_READ;

Return to:

Send suggestions and report system problems to the System administrator.