From 28e5655de3e465cb0faaaf2b35aec7f1c31bbe52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Tomko?= Date: Wed, 3 Feb 2016 09:48:40 +0100 Subject: [PATCH] Prohibit verbose strcat Using strcat directly is more readable than passing strlen of the copied string to strncat. --- cfg.mk | 6 ++++++ src/storage/storage_backend_logical.c | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/cfg.mk b/cfg.mk index 71b0866d52..3f78842a5b 100644 --- a/cfg.mk +++ b/cfg.mk @@ -1031,6 +1031,12 @@ sc_prohibit_not_strneq: halt='Use STREQ instead of !STRNEQ' \ $(_sc_search_regexp) +sc_prohibit_verbose_strcat: + @prohibit='strncat\([^,]*,\s+([^,]*),\s+strlen\(\1\)\)' \ + in_vc_files='\.[ch]$$' \ + halt='Use strcat(a, b) instead of strncat(a, b, strlen(b))' \ + $(_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 ba26223f14..f0d6f80383 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)