From 1ebbf81c00fd1f1bd4941bf18a3b3990a77648d2 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sat, 17 Aug 2013 02:34:44 +0200 Subject: Use readdir instead of readdir_r readdir_r can be unsafe for very long filenames. --- src/config.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/config.c b/src/config.c index 8a417e9..672c0a7 100644 --- a/src/config.c +++ b/src/config.c @@ -324,17 +324,15 @@ static void read_peer_dir(fastd_context_t *ctx, fastd_config_t *conf, const char if (dirh) { while (true) { - struct dirent entry, *result; - int ret; + errno = 0; + struct dirent *result = readdir(dirh); + if (!result) { + if (errno) + pr_error_errno(ctx, "readdir"); - ret = readdir_r(dirh, &entry, &result); - if (ret) { - pr_error(ctx, "readdir_r: %s", strerror(ret)); break; } - if (!result) - break; if (result->d_name[0] == '.') continue; -- cgit v1.2.3