aboutsummaryrefslogtreecommitdiffstats
path: root/extension
diff options
context:
space:
mode:
Diffstat (limited to 'extension')
-rw-r--r--extension/ChangeLog5
-rw-r--r--extension/readdir.c9
2 files changed, 12 insertions, 2 deletions
diff --git a/extension/ChangeLog b/extension/ChangeLog
index 4279e22d..31a070d8 100644
--- a/extension/ChangeLog
+++ b/extension/ChangeLog
@@ -1,3 +1,8 @@
+2012-07-29 Arnold D. Robbins <arnold@skeeve.com>
+
+ * readdir.c (dir_take_control_of): Print error message and
+ set ERRNO if failure. Adjust count of max digits.
+
2012-07-27 Andrew J. Schorr <aschorr@telemetry-investments.com>
* Makefile.am (*_la_LIBADD): Need to link with $(LIBINTL) for
diff --git a/extension/readdir.c b/extension/readdir.c
index 2818d601..99073a2d 100644
--- a/extension/readdir.c
+++ b/extension/readdir.c
@@ -209,6 +209,7 @@ dir_take_control_of(IOBUF_PUBLIC *iobuf)
open_directory_t *the_dir;
size_t size;
+ errno = 0;
#ifdef HAVE_FDOPENDIR
dp = fdopendir(iobuf->fd);
#else
@@ -216,12 +217,16 @@ dir_take_control_of(IOBUF_PUBLIC *iobuf)
if (dp != NULL)
iobuf->fd = dirfd(dp);
#endif
- if (dp == NULL)
+ if (dp == NULL) {
+ warning(ext_id, _("dir_take_control_of: opendir/fdopendir failed: %s"),
+ strerror(errno));
+ update_ERRNO_int(errno);
return 0;
+ }
emalloc(the_dir, open_directory_t *, sizeof(open_directory_t), "dir_take_control_of");
the_dir->dp = dp;
- size = sizeof(struct dirent) + 20 /* max digits in inode */ + 2 /* slashes */;
+ size = sizeof(struct dirent) + 21 /* max digits in inode */ + 2 /* slashes */;
emalloc(the_dir->buf, char *, size, "dir_take_control_of");
iobuf->opaque = the_dir;