[libvirt] [PATCHv2 7/7] enforce sane readdir usage

Eric Blake eblake at redhat.com
Sat Apr 26 13:18:20 UTC 2014


Now that all clients have been adjusted, ensure that no future
misuse of readdir is introduced into the code base.

* cfg.mk (sc_prohibit_readdir): New rule.
* src/util/virfile.c (virDirRead): Exempt the wrapper.

Signed-off-by: Eric Blake <eblake at redhat.com>
---
 cfg.mk             | 6 ++++++
 src/util/virfile.c | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/cfg.mk b/cfg.mk
index 8a444d6..3f4bba0 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -421,6 +421,12 @@ sc_prohibit_gethostname:
 	halt='use virGetHostname, not gethostname'			\
 	  $(_sc_search_regexp)

+sc_prohibit_readdir:
+	@prohibit='\breaddir *\('					\
+	exclude='exempt from syntax-check'				\
+	halt='use virDirRead, not readdir'				\
+	  $(_sc_search_regexp)
+
 sc_prohibit_gettext_noop:
 	@prohibit='gettext_noop *\('					\
 	halt='use N_, not gettext_noop'					\
diff --git a/src/util/virfile.c b/src/util/virfile.c
index bb1e7ba..f75f0c8 100644
--- a/src/util/virfile.c
+++ b/src/util/virfile.c
@@ -2401,7 +2401,7 @@ virDirCreate(const char *path ATTRIBUTE_UNUSED,
 int virDirRead(DIR *dirp, struct dirent **ent, const char *name)
 {
     errno = 0;
-    *ent = readdir(dirp);
+    *ent = readdir(dirp); /* exempt from syntax-check */
     if (!*ent && errno) {
         if (name)
             virReportSystemError(errno, _("Unable to read directory '%s'"),
-- 
1.9.0




More information about the libvir-list mailing list