diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2017-01-26 14:33:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-26 14:33:03 +0100 |
commit | 59fd0c4132f06a76c460f46ec93fce7b7f1d6f08 (patch) | |
tree | 0a6eaf861fa7406c9cd06ffd61dc37e84b051975 /src/clint.py | |
parent | f78982620a48dc76bbd3635300650d06ced24aab (diff) | |
download | rneovim-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-x | src/clint.py | 11 |
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) { |