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