aboutsummaryrefslogtreecommitdiff
path: root/src/clint.py
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2017-01-26 14:33:03 +0100
committerGitHub <noreply@github.com>2017-01-26 14:33:03 +0100
commit59fd0c4132f06a76c460f46ec93fce7b7f1d6f08 (patch)
tree0a6eaf861fa7406c9cd06ffd61dc37e84b051975 /src/clint.py
parentf78982620a48dc76bbd3635300650d06ced24aab (diff)
downloadrneovim-59fd0c4132f06a76c460f46ec93fce7b7f1d6f08.tar.gz
rneovim-59fd0c4132f06a76c460f46ec93fce7b7f1d6f08.tar.bz2
rneovim-59fd0c4132f06a76c460f46ec93fce7b7f1d6f08.zip
refactor: Remove strncpy/STRNCPY. (#6008)
Closes #731 References #851 Note: This does not remove some intentional legacy usages of strncpy. - memcpy isn't equivalent because it doesn't check the string length of `src`, and doesn't zero-out the remainder of `dst`. - xstrlcpy isn't equivalent because it doesn't zero-out the remainder of `dst`. Some Vim logic depends on that (e.g. ex_append which calls vim_strnsave). Helped-by: Douglas Schneider <ds3@ualberta.ca> Helped-by: oni-link <knil.ino@gmail.com> Helped-by: James McCoy <jamessan@jamessan.com>
Diffstat (limited to 'src/clint.py')
-rwxr-xr-xsrc/clint.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/clint.py b/src/clint.py
index df71282362..4fa78d3c82 100755
--- a/src/clint.py
+++ b/src/clint.py
@@ -3167,14 +3167,19 @@ def CheckLanguage(filename, clean_lines, linenum, file_extension,
if Search(r'\bsprintf\b', line):
error(filename, linenum, 'runtime/printf', 5,
'Use snprintf instead of sprintf.')
- match = Search(r'\b(STRCPY|strcpy)\b', line)
+ match = Search(r'\b(strncpy|STRNCPY)\b', line)
+ if match:
+ error(filename, linenum, 'runtime/printf', 4,
+ 'Use xstrlcpy or snprintf instead of %s (unless this is from Vim)'
+ % match.group(1))
+ match = Search(r'\b(strcpy)\b', line)
if match:
error(filename, linenum, 'runtime/printf', 4,
'Use xstrlcpy or snprintf instead of %s' % match.group(1))
- match = Search(r'\b(STRNCAT|strncat)\b', line)
+ match = Search(r'\b(STRNCAT|strncat|strcat)\b', line)
if match:
error(filename, linenum, 'runtime/printf', 4,
- 'Use xstrlcat instead of %s' % match.group(1))
+ 'Use xstrlcat or snprintf instead of %s' % match.group(1))
# Check for suspicious usage of "if" like
# } if (a == b) {