diff options
author | Conrad Meyer <cem@FreeBSD.org> | 2020-05-11 22:57:21 +0000 |
---|---|---|
committer | Conrad Meyer <cem@FreeBSD.org> | 2020-05-11 22:57:21 +0000 |
commit | 580744621f33383027108364dcadad718df46ffe (patch) | |
tree | 187024ccf9e3ec44b623ce2db3f6e2aac3f0887f /tools/coccinelle | |
parent | 294b75a880e20b6c9c198533bd421650e55fb651 (diff) | |
download | src-580744621f33383027108364dcadad718df46ffe.tar.gz src-580744621f33383027108364dcadad718df46ffe.zip |
Notes
Diffstat (limited to 'tools/coccinelle')
-rw-r--r-- | tools/coccinelle/copystr9.cocci | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tools/coccinelle/copystr9.cocci b/tools/coccinelle/copystr9.cocci new file mode 100644 index 000000000000..ac961406a456 --- /dev/null +++ b/tools/coccinelle/copystr9.cocci @@ -0,0 +1,39 @@ +@ nostorederror_nostoredlen @ + expression __src, __dst, __len; + statement S1; +@@ + + S1 +-copystr(__src, __dst, __len, NULL); ++strlcpy(__dst, __src, __len); + +@ ifcondition_nostoredlen @ + expression __src, __dst, __len; + statement S1; +@@ + if ( +( +-copystr(__src, __dst, __len, NULL) == ENAMETOOLONG +| +-copystr(__src, __dst, __len, NULL) != 0 +| +-copystr(__src, __dst, __len, NULL) +) ++strlcpy(__dst, __src, __len) >= __len + ) S1 + +@ nostorederror_storedlen1 @ + expression __src, __dst, __len; + identifier __done; + statement S1; +@@ + S1 +( +-copystr(__src, __dst, __len, &__done); ++__done = strlcpy(__dst, __src, __len); ++__done = MIN(__done, __len); +| +-copystr(__src, __dst, __len, __done); ++ *__done = strlcpy(__dst, __src, __len); ++ *__done = MIN(*__done, __len); +) |