diff -urNad asterisk-1.0.9.dfsg.1/config.c /tmp/dpep.oKwZhH/asterisk-1.0.9.dfsg.1/config.c --- asterisk-1.0.9.dfsg.1/config.c 2005-07-04 21:58:39.000000000 +0300 +++ /tmp/dpep.oKwZhH/asterisk-1.0.9.dfsg.1/config.c 2005-07-04 22:02:01.000000000 +0300 @@ -799,8 +799,10 @@ fclose(f); return NULL; } - while(!feof(f)) { + while(!feof(f) && ((ferror(f)) != 0) ) { + /* in the above, when read(2) sets errno to EISDIR, ferror returns 1 */ lineno++; + clearer(f); /* to notice fgets errors. really necessary? */ if (fgets(buf, sizeof(buf), f)) { if (cfg_process(tmp, _tmpc, _last, buf, lineno, configfile, includelevel #ifdef PRESERVE_COMMENTS