Subject: problems with mutt and 20040416 snapsnot
From: Yitzchak Scott-Thoennes <[email-masked]>
To: [email-masked]
Date: Tue, 20 Apr 2004 01:49:53 -0700

After switching from 1.5.9 to the 20040416 snapsnot, mutt
starts complaining "Could not create temporary file!" when
trying to view a message.  The problem seems to be in the
code checking if a created temp file is a symlink:

> static int compare_stat (struct stat *osb, struct stat *nsb)
> {
>   if (osb->st_dev != nsb->st_dev || osb->st_ino != nsb->st_ino ||
>       osb->st_rdev != nsb->st_rdev)
>   {
>     return -1;
>   }
> 
>   return 0;
> }

called from here:

> int safe_open (const char *path, int flags)
> {
>   struct stat osb, nsb;
>   int fd, ls, fs;
> 
>   if ((fd = open (path, flags, 0600)) < 0) {
>     printf("open failed!\n");
>     return fd;
>   }
> 
>   /* make sure the file is not symlink */
>   if ((ls=lstat (path, &osb)) < 0 || (fs=fstat (fd, &nsb)) < 0 ||
>       compare_stat(&osb, &nsb) == -1)

because the inode numbers no longer seem to match.  Commenting out the
return -1; works as a workaround.

After doing so, and building my own mutt I am sporadically getting
"Couldn't lock " mailbox-name errors from mbox_lock_mailbox failing.

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/