>>>>> @@ -285,12 +288,6 @@ >>>>> #ifdef USE_POP >>>>> if (!Context || Context->magic != M_POP) >>>>> #endif >>>>> - /* check device ID and serial number instead of comparing paths */ >>>>> - if (!Context || !Context->path || stat (Context->path, &contex_sb) != >>>>> 0) >>>>> - { >>>>> - contex_sb.st_dev=0; >>>>> - contex_sb.st_ino=0; >>>>> - } >> >>> I don't disagree w/ you. But the result of the if statement is useless if >>> the value is initialized before hand. >> >> The problem is that you remove the stat() call which is the only place >> contex_sb is filled with values. To initialize it I think we want >> something like this: >> >> contex_sb.st_dev = 0; >> contex_sb.st_ino = 0; >> >> [...] >> >> if (Context && Context->path) >> stat (Context->path, &contex_sb); > > Feel free to ignore my patch on this one. I will gin up another one if > I get a better fix.
Here is a simpler fix for this issue. stat() is unchanged, but the values of st_dev and st_ino are initialized at the begining. E -- Erik Hovland e...@hovland.org http://hovland.org/
diff -r d752330561da buffy.c --- a/buffy.c Mon Mar 16 15:55:08 2009 -0700 +++ b/buffy.c Tue Mar 17 13:36:53 2009 -0700 @@ -261,6 +261,8 @@ time_t t; sb.st_size=0; + contex_sb.st_dev=0; + contex_sb.st_ino=0; #ifdef USE_IMAP /* update postponed count as well, on force */ if (force)