register FILE *ib; /* profile and context file pointer */
/*
+ * If this routine _is_ called again (despite the wanings in the
+ * comments above), return immediately.
+ */
+ if ( m_defs != 0 )
+ return;
+
+ /*
* Find user's home directory. Try the HOME environment variable first,
* the home directory field in the password file if that's not found.
*/
if ((cp = getenv ("MHCONTEXT")) == (char *)0 || *cp == '\0')
cp = context;
- /* context is NULL if context_foil() was called to disable use of context */
- if (!cp) {
+ /* context is NULL if context_foil() was called to disable use of context
+ * We also support users setting explicitly setting MHCONTEXT to /dev/null.
+ * (if this wasn't specialcased then the locking would be liable to fail)
+ */
+ if (!cp || (strcmp(cp,"/dev/null") == 0)) {
ctxpath = NULL;
return;
}