This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

problems with mutt and 20040416 snapsnot


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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]