diff options
author | Andrew J. Schorr <aschorr@telemetry-investments.com> | 2012-07-27 12:40:01 -0400 |
---|---|---|
committer | Andrew J. Schorr <aschorr@telemetry-investments.com> | 2012-07-27 12:40:01 -0400 |
commit | dce685318154027d30f8dad8df796e1e12436765 (patch) | |
tree | b59cf3eddbeda7ba6ed810ffaec60f599db10d2b /extension/readdir.c | |
parent | 913a0f88f5cfff1f139bb05ffd4a0a9a516ebdde (diff) | |
download | egawk-dce685318154027d30f8dad8df796e1e12436765.tar.gz egawk-dce685318154027d30f8dad8df796e1e12436765.tar.bz2 egawk-dce685318154027d30f8dad8df796e1e12436765.zip |
Fix last: must initialize errno to 0 before calling readdir.
Diffstat (limited to 'extension/readdir.c')
-rw-r--r-- | extension/readdir.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/extension/readdir.c b/extension/readdir.c index f8580568..2818d601 100644 --- a/extension/readdir.c +++ b/extension/readdir.c @@ -139,6 +139,10 @@ dir_get_record(char **out, struct iobuf_public *iobuf, int *errcode) set_RT((awk_value_t *) & null_val); the_dir = (open_directory_t *) iobuf->opaque; dp = the_dir->dp; + /* + * Initialize errno, since readdir does not set it to zero on EOF. + */ + errno = 0; dirent = readdir(dp); if (dirent == NULL) { *errcode = errno; /* in case there was an error */ |