xref: /freebsd/tools/coccinelle/copystr9.cocci (revision 852c303b61d12d13b56ed7affe31df193aadf9ae)
1*852c303bSConrad Meyer@ nostorederror_nostoredlen @
2*852c303bSConrad Meyer expression __src, __dst, __len;
3*852c303bSConrad Meyer statement S1;
4*852c303bSConrad Meyer@@
5*852c303bSConrad Meyer
6*852c303bSConrad Meyer S1
7*852c303bSConrad Meyer-copystr(__src, __dst, __len, NULL);
8*852c303bSConrad Meyer+strlcpy(__dst, __src, __len);
9*852c303bSConrad Meyer
10*852c303bSConrad Meyer@ ifcondition_nostoredlen @
11*852c303bSConrad Meyer expression __src, __dst, __len;
12*852c303bSConrad Meyer statement S1;
13*852c303bSConrad Meyer@@
14*852c303bSConrad Meyer if (
15*852c303bSConrad Meyer(
16*852c303bSConrad Meyer-copystr(__src, __dst, __len, NULL) == ENAMETOOLONG
17*852c303bSConrad Meyer|
18*852c303bSConrad Meyer-copystr(__src, __dst, __len, NULL) != 0
19*852c303bSConrad Meyer|
20*852c303bSConrad Meyer-copystr(__src, __dst, __len, NULL)
21*852c303bSConrad Meyer)
22*852c303bSConrad Meyer+strlcpy(__dst, __src, __len) >= __len
23*852c303bSConrad Meyer ) S1
24*852c303bSConrad Meyer
25*852c303bSConrad Meyer@ nostorederror_storedlen1 @
26*852c303bSConrad Meyer expression __src, __dst, __len;
27*852c303bSConrad Meyer identifier __done;
28*852c303bSConrad Meyer statement S1;
29*852c303bSConrad Meyer@@
30*852c303bSConrad Meyer S1
31*852c303bSConrad Meyer(
32*852c303bSConrad Meyer-copystr(__src, __dst, __len, &__done);
33*852c303bSConrad Meyer+__done = strlcpy(__dst, __src, __len);
34*852c303bSConrad Meyer+__done = MIN(__done, __len);
35*852c303bSConrad Meyer|
36*852c303bSConrad Meyer-copystr(__src, __dst, __len, __done);
37*852c303bSConrad Meyer+ *__done = strlcpy(__dst, __src, __len);
38*852c303bSConrad Meyer+ *__done = MIN(*__done, __len);
39*852c303bSConrad Meyer)
40