userv (1.1.2~~iwj1) unstable; urgency=low
- Parser fixes:
+ Bugfixes:
* Support `stdin', `stdout' and `stderr' in fd ranges, as promised
by the spec. Closes:#813005.
+ * Do not ignore errors from readdir. Closes:#827408 [Peter Benie].
Upstream Makefiles:
* Honour XCFLAGS.
if (time(&now) == -1) { syslog(LOG_ERR,"get current time: %m"); return; }
dir= opendir(".");
if (!dir) { syslog(LOG_ERR,"open directory " VARDIR ": %m"); return; }
- while ((de= readdir(dir))) {
+ while ((errno=0, de= readdir(dir))) {
if (fnmatch(PIPEPATTERN,de->d_name,FNM_PATHNAME|FNM_PERIOD)) continue;
r= lstat(de->d_name,&stab); if (r && errno==ENOENT) continue;
if (r) { syslog(LOG_ERR,"could not stat `" VARDIR "/%s': %m",de->d_name); continue; }
if (unlink(de->d_name) && errno!=ENOENT)
syslog(LOG_ERR,"could not remove stale pipe `%s': %m",de->d_name);
}
+ if (errno) syslog(LOG_ERR,"read directory " VARDIR ": %m");
if (closedir(dir)) syslog(LOG_ERR,"close directory " VARDIR ": %m");
}
return parseerrprint("unable to open directory `%s': %s",cpget,strerror(errno));
cp= xstrsave(cpget);
cpl= strlen(cp);
- while ((de= readdir(d))) {
+ while ((errno=0, de= readdir(d))) {
tel= strlen(de->d_name);
if (!tel) continue;
p= de->d_name;
goto x_err;
}
}
+ if (errno) {
+ parseerrprint("error reading directory `%s': %s",cp,strerror(errno));
+ closedir(d);
+ free(cp);
+ return tokv_error;
+ }
if (closedir(d)) {
parseerrprint("error closing directory `%s': %s",cp,strerror(errno));
free(cp);