[leafnode-list] Leafnode 1: Noticed a bug in xoverutil.c

Gary R. Schmidt grschmidt at acm.org
Tue Dec 13 06:00:46 CET 2016


Hi,
In reviewing my various and sundry log files, I noticed the following 
showing up:
     fetchnews[19025]: [ID 702911 news.error] error: cannot 
rmdir(/news/comp/databases): File exists
Which is true as /news/comp/database/xbase is still populated.

So I went looking and found that the rmdir(2) call in killcwd() checks 
for ENOTEMPTY as a no error condition, and not EEXIST which Solaris 11.3 
returns.

This turns out to be one of those "POSIX allows for ..." cases, so here 
is the unified diff to add checking for EEXIST.  (Against 1.11.10, but 
xoverutil.c has not changed.)

     Cheers,
         Gary    B-)

--- ./leafnode-1.11.10/xoverutil.c      Sat Jan 31 02:02:52 2009
+++ ./leafnode-1.11.11/xoverutil.c      Tue Dec 13 15:27:53 2016
@@ -386,7 +386,7 @@
         if (chdir(spooldir)) {
             ln_log(LNLOG_SERR, LNLOG_CTOP, "error: cannot chdir(%s): 
%m", spooldir);
         }
-       if (rmdir(t) && errno != ENOTEMPTY) {
+       if (rmdir(t) && errno != ENOTEMPTY && errno != EEXIST) {
             ln_log(LNLOG_SERR, LNLOG_CTOP, "error: cannot rmdir(%s): 
%m", t);
         }
         free(t);



More information about the leafnode-list mailing list