Subject: Re: problems with mutt and 20040416 snapsnot
From: Yitzchak Scott-Thoennes <[email-masked]>
To: [email-masked]
Date: Tue, 20 Apr 2004 02:07:23 -0700

On Tue, Apr 20, 2004 at 01:49:53AM -0700, I wrote:
> 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.

The code fragments above are from mutt's lib.c.  cygcheck output attached.

--
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/