[Libvir] [PATCH] Avoid new "make syntax-check" failures.

Jim Meyering jim at meyering.net
Fri Feb 22 20:33:26 UTC 2008


With recent changes, I introduced some new "make syntax-check"
failures.  Also, there were two remaining invalid uses of write(2).
This fixes all that.

	Avoid new "make syntax-check" failures.
	* .x-sc_avoid_write: Exempt src/util-lib.c, too.
	* Makefile.maint (sc_unmarked_diagnostics): Filter out false positives.
	* src/storage_backend_fs.c (virStorageBackendFileSystemVolCreate):
	Use safewrite, not write.
	* src/storage_backend_logical.c (virStorageBackendLogicalBuildPool):
        Likewise.

---
 .x-sc_avoid_write             |    1 +
 Makefile.maint                |    6 +++++-
 src/storage_backend_fs.c      |    2 +-
 src/storage_backend_logical.c |    2 +-
 4 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/.x-sc_avoid_write b/.x-sc_avoid_write
index 72a196d..fe38d83 100644
--- a/.x-sc_avoid_write
+++ b/.x-sc_avoid_write
@@ -1,2 +1,3 @@
 ^src/util\.c$
 ^src/xend_internal\.c$
+^src/util-lib\.c$
diff --git a/Makefile.maint b/Makefile.maint
index fe964a5..0c3acf8 100644
--- a/Makefile.maint
+++ b/Makefile.maint
@@ -304,6 +304,9 @@ err_func_re = \

 # Look for diagnostics that aren't marked for translation.
 # This won't find any for which error's format string is on a separate line.
+# The sed filters eliminate false-positives like these:
+#    _("...: "
+#    "%s", _("no storage vol w..."
 sc_unmarked_diagnostics:
 	@grep -nE							\
 	    '\<(vshError|error) \([^"]*"[^"]*[a-z]{3}' $$($(CVS_LIST_EXCEPT))	\
@@ -312,7 +315,8 @@ sc_unmarked_diagnostics:
 	    exit 1; } || :
 	@{ grep     -nE '\<$(err_func_re) *\(.*;$$' $$($(CVS_LIST_EXCEPT));   \
 	   grep -A1 -nE '\<$(err_func_re) *\(.*,$$' $$($(CVS_LIST_EXCEPT)); } \
-	  | grep '[	 ]"' &&						\
+	   | sed 's/_("[^"][^"]*"//;s/[	 ]"%s"//' \
+	   | grep '[	 ]"' &&						\
 	  { echo '$(ME): found unmarked diagnostic(s)' 1>&2;		\
 	    exit 1; } || :

diff --git a/src/storage_backend_fs.c b/src/storage_backend_fs.c
index 9425cbc..1d540e1 100644
--- a/src/storage_backend_fs.c
+++ b/src/storage_backend_fs.c
@@ -854,7 +854,7 @@ virStorageBackendFileSystemVolCreate(virConnectPtr conn,
                 int bytes = sizeof(zeros);
                 if (bytes > remain)
                     bytes = remain;
-                if ((bytes = write(fd, zeros, bytes)) < 0) {
+                if ((bytes = safewrite(fd, zeros, bytes)) < 0) {
                     virStorageReportError(conn, VIR_ERR_INTERNAL_ERROR,
                                           _("cannot fill file '%s': %s"),
                                           vol->target.path, strerror(errno));
diff --git a/src/storage_backend_logical.c b/src/storage_backend_logical.c
index a70c087..f8a075d 100644
--- a/src/storage_backend_logical.c
+++ b/src/storage_backend_logical.c
@@ -287,7 +287,7 @@ virStorageBackendLogicalBuildPool(virConnectPtr conn,
                                   strerror(errno));
             goto cleanup;
         }
-        if (write(fd, zeros, sizeof(zeros)) != sizeof(zeros)) {
+        if (safewrite(fd, zeros, sizeof(zeros)) < 0) {
             virStorageReportError(conn, VIR_ERR_INTERNAL_ERROR,
                                   _("cannot clear device header %s"),
                                   strerror(errno));
--
1.5.4.2.185.gf5f8




More information about the libvir-list mailing list