[PATCH] Prohibit verbose strcat

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Using strcat directly is more readable than passing strlen
of the copied string to strncat.
---
 cfg.mk                                | 5 +++++
 src/storage/storage_backend_logical.c | 4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/cfg.mk b/cfg.mk
index 71b0866..be9e475 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -1031,6 +1031,11 @@ sc_prohibit_not_strneq:
 	halt='Use STREQ instead of !STRNEQ'	\
 	  $(_sc_search_regexp)
 
+sc_prohibit_verbose_strcat:
+	@prohibit='strncat\([^,]*,\s+([^,]*),\s+strlen\(\1\)\)' \
+	halt='Use strcat(a, b) instead of strncat(a, b, strlen())' \
+	  $(_sc_search_regexp)
+
 # We don't use this feature of maint.mk.
 prev_version_file = /dev/null
 
diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c
index ba26223..f0d6f80 100644
--- a/src/storage/storage_backend_logical.c
+++ b/src/storage/storage_backend_logical.c
@@ -123,11 +123,11 @@ virStorageBackendLogicalParseVolExtents(virStorageVolDefPtr vol,
     /* Allocate space for 'nextents' regex_unit strings plus a comma for each */
     if (VIR_ALLOC_N(regex, nextents * (strlen(regex_unit) + 1) + 1) < 0)
         goto cleanup;
-    strncat(regex, regex_unit, strlen(regex_unit));
+    strcat(regex, regex_unit);
     for (i = 1; i < nextents; i++) {
         /* "," is the separator of "devices" field */
         strcat(regex, ",");
-        strncat(regex, regex_unit, strlen(regex_unit));
+        strcat(regex, regex_unit);
     }
 
     if (VIR_ALLOC(reg) < 0)
-- 
2.4.10

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]