diff options
| author | Conrad Meyer <cem@FreeBSD.org> | 2020-05-25 16:40:48 +0000 |
|---|---|---|
| committer | Conrad Meyer <cem@FreeBSD.org> | 2020-05-25 16:40:48 +0000 |
| commit | 852c303b61d12d13b56ed7affe31df193aadf9ae (patch) | |
| tree | 789bb0daba41ca856b37f87708652b4cfcc6403a /tools/coccinelle | |
| parent | 9085d7d6b86a3435c92d8b817dcc6224ad3e6671 (diff) | |
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); +) |
