Provided by: mutt_1.5.21-6.4ubuntu2.2_amd64 bug


       mutt_dotlock - Lock mail spool files.


       mutt_dotlock [-t|-f|-u|-d] [-p] [-r retries] file


       mutt_dotlock  implements  the  traditional mail spool file locking method: To lock file, a
       file named file.lock is created. The  program  operates  with  group  mail  privileges  if


       -t     Just try.  mutt_dotlock won't actually lock a file, but inform the invoking process
              if it's at all possible to lock file.

       -f     Force the lock.  If another process holds a lock on  file  longer  than  a  certain
              amount of time, mutt_dotlock will break that lock by removing the lockfile.

       -u     Unlock.  mutt_dotlock will remove file.lock.

       -d     Delete.   mutt_dotlock will lock file, remove it if it has length 0, and afterwards
              remove file.lock.

       -p     Use privileges.  If given this option, mutt_dotlock will operate  with  group  mail
              privileges when creating and deleting lock files.

       -r retries
              This  command  line  option  tells mutt_dotlock to try locking retries times before
              giving up or (if invoked with the -f  command  line  option)  break  a  lock.   The
              default  value  is  5.   mutt_dotlock  waits  one second between successive locking


              The lock file mutt_dotlock generates.


       fcntl(2), flock(2), lockfile(1), mutt(1)


       mutt_dotlock gives all diagnostics in its return values:

       0 - DL_EX_OK
              The program was successful.

       1 - DL_EX_ERROR
              An unspecified error such as bad command line parameters, lack of system memory and
              the like has occured.

       3 - DL_EX_EXIST
              The user wants to lock a file which has been locked by another process already.  If
              mutt_dotlock is invoked  with  the  -f  command  line  option,  mutt_dotlock  won't
              generate this error, but break other processes' locks.

       4 - DL_EX_NEED_RPIVS
              This  return value only occurs if mutt_dotlock has been invoked with the -t command
              line option.  It means that mutt_dotlock will have to use its group mail privileges
              to lock file.

              This  return value only occurs if mutt_dotlock has been invoked with the -t command
              line option.  It means that mutt_dotlock is unable to lock  file  even  with  group
              mail privileges.


       mutt_dotlock  tries  to  implement  an  NFS-safe dotlocking method which was borrowed from
       lockfile (1).

       If the user can't open file for reading with  his  normal  privileges,  mutt_dotlock  will
       return  the  DL_EX_ERROR  exit  value  to avoid certain attacks against other users' spool
       files. The code carefully avoids race conditions when checking permissions; for details of
       all this see the comments in dotlock.c.


       mutt_dotlock  is  part  of the Mutt mail user agent package.  It has been created to avoid
       running mutt with group mail privileges.


       Thomas Roessler <>