commit-mailutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU Mailutils branch, master, updated. release-2.2-698-g131ddb2


From: Sergey Poznyakoff
Subject: [SCM] GNU Mailutils branch, master, updated. release-2.2-698-g131ddb2
Date: Sun, 03 May 2015 17:31:48 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Mailutils".

http://git.savannah.gnu.org/cgit/mailutils.git/commit/?id=131ddb25a51862bb31fe5fd7a1111896fbb20c58

The branch, master has been updated
       via  131ddb25a51862bb31fe5fd7a1111896fbb20c58 (commit)
      from  22b58503041ddd74f2919e28bcbdd08a278dccc5 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 131ddb25a51862bb31fe5fd7a1111896fbb20c58
Author: Sergey Poznyakoff <address@hidden>
Date:   Sun May 3 20:14:18 2015 +0300

    Honor MAIL and FOLDER envars if _mu_mailbox_pattern is not set.
    
    The _mu_mailbox_pattern variable is supposed to be set only from
    configuration file.  However, the mu_mailbox_url function would
    also set it as a side effect.  This produced strange results;
    in particular unsetting HOME variable caused mail utilities to ignore
    MAIL variable as well (as reported by Dan Jacobson on 2015-04-30,
    <address@hidden>).
    
    * configure.ac (MU_PATH_MAILDIR): Don't end with a slash.
    * libmailutils/mailbox/mbx_default.c
    (mu_normalize_mailbox_url): Use mu_make_file_name.
    (mu_mailbox_url): Don't set _mu_mailbox_pattern.

-----------------------------------------------------------------------

Summary of changes:
 configure.ac                       |    2 +-
 libmailutils/mailbox/mbx_default.c |   52 ++++++++++++-----------------------
 2 files changed, 19 insertions(+), 35 deletions(-)

diff --git a/configure.ac b/configure.ac
index 1dabd30..57cebb8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -350,7 +350,7 @@ AH_BOTTOM(
 #ifdef MU_CONF_MAILDIR
 # define MU_PATH_MAILDIR MU_CONF_MAILDIR
 #else
-# define MU_PATH_MAILDIR PATH_MAILDIR "/"
+# define MU_PATH_MAILDIR PATH_MAILDIR 
 #endif])
 
 ##################################
diff --git a/libmailutils/mailbox/mbx_default.c 
b/libmailutils/mailbox/mbx_default.c
index 3f8238e..ab93fff 100644
--- a/libmailutils/mailbox/mbx_default.c
+++ b/libmailutils/mailbox/mbx_default.c
@@ -49,12 +49,12 @@ static char *_mu_mailbox_pattern;
 static char *_default_folder_dir = "Mail";
 static char *_mu_folder_dir;
 
+#define USERSUFFIX "${user}"
+
 static int
 mu_normalize_mailbox_url (char **pout, const char *dir)
 {
   int len;
-  int addslash = 0;
-#define USERSUFFIX "${user}"
   
   if (!pout)
     return MU_ERR_OUT_PTR_NULL;
@@ -67,18 +67,12 @@ mu_normalize_mailbox_url (char **pout, const char *dir)
       else
        return MU_ERR_BAD_FILENAME;
     }
-  else if (dir[len-1] != '/')
-    addslash = 1;
+  else
+    *pout = mu_make_file_name (dir, USERSUFFIX);
 
-  *pout = malloc (strlen (dir) + (addslash ? 1 : 0) + sizeof USERSUFFIX);
   if (!*pout)
-    return ENOMEM;
+    return errno;
 
-  strcpy (*pout, dir);
-  if (addslash)
-    strcat (*pout, "/");
-  strcat (*pout, USERSUFFIX);
-#undef USERSUFFIX
   return 0;
 }
 
@@ -129,9 +123,9 @@ mu_set_folder_directory (const char *p)
 const char *
 mu_mailbox_url ()
 {
-  if (!_mu_mailbox_pattern)
-    mu_set_mail_directory (MU_PATH_MAILDIR);
-  return _mu_mailbox_pattern;
+  if (_mu_mailbox_pattern)
+    return _mu_mailbox_pattern;
+  return MU_PATH_MAILDIR "/" USERSUFFIX;
 }
 
 const char *
@@ -145,6 +139,7 @@ mu_folder_directory ()
 int
 mu_construct_user_mailbox_url (char **pout, const char *name)
 {
+  int rc;
   const char *pat = mu_mailbox_url ();
   const char *env[3];
   struct mu_wordsplit ws;
@@ -153,13 +148,15 @@ mu_construct_user_mailbox_url (char **pout, const char 
*name)
   env[1] = (char*) name;
   env[2] = NULL;
   ws.ws_env = env;
-  if (mu_wordsplit (pat, &ws,
-                   MU_WRDSF_NOSPLIT | MU_WRDSF_NOCMD |
-                   MU_WRDSF_ENV | MU_WRDSF_ENV_KV))
+  rc = mu_wordsplit (pat, &ws,
+                    MU_WRDSF_NOSPLIT | MU_WRDSF_NOCMD |
+                    MU_WRDSF_ENV | MU_WRDSF_ENV_KV);
+    
+  if (rc)
     {
       mu_error (_("cannot expand line `%s': %s"), pat,
                mu_wordsplit_strerror (&ws));
-      return errno;
+      return rc;
     }
 
   if (ws.ws_wordc == 0)
@@ -173,9 +170,6 @@ mu_construct_user_mailbox_url (char **pout, const char 
*name)
   return 0;
 }
 
-/* Is this a security risk?  */
-#define USE_ENVIRON 1
-
 static int
 split_shortcut (const char *file, const char pfx[], char **user, char **rest)
 {
@@ -239,7 +233,6 @@ get_homedir (const char *user)
     }
   else
     {
-#ifdef USE_ENVIRON
       /* NOTE: Should we honor ${HOME}?  */
       homedir = getenv ("HOME");
       if (homedir == NULL)
@@ -248,11 +241,6 @@ get_homedir (const char *user)
          if (auth)
            homedir = auth->dir;
         }
-#else
-      auth = mu_get_auth_by_name (user);
-      if (auth)
-       homedir = auth->dir;
-#endif
     }
 
   if (homedir)
@@ -264,10 +252,8 @@ get_homedir (const char *user)
 static int
 user_mailbox_name (const char *user, char **mailbox_name)
 {
-#ifdef USE_ENVIRON
   if (!user)
     user = (getenv ("LOGNAME")) ? getenv ("LOGNAME") : getenv ("USER");
-#endif
 
   if (user)
     {
@@ -416,10 +402,8 @@ mu_mailbox_create_default (mu_mailbox_t *pmbox, const char 
*mail)
             use FOLDER instead, to not confuse others by using MAIL.  */
          mail = getenv ("FOLDER");
          if (!mail)
-           {
-             /* Fallback to well-known environment.  */
-             mail = getenv ("MAIL");
-           }
+           /* Fallback to well-known environment.  */
+           mail = getenv ("MAIL");
        }
 
       if (!mail)
@@ -429,7 +413,7 @@ mu_mailbox_create_default (mu_mailbox_t *pmbox, const char 
*mail)
          mail = tmp_mbox;
        }
     }
-
+  
   p = mu_tilde_expansion (mail, MU_HIERARCHY_DELIMITER, NULL);
   if (tmp_mbox)
     free (tmp_mbox);


hooks/post-receive
-- 
GNU Mailutils



reply via email to

[Prev in Thread] Current Thread [Next in Thread]