@@ -12,8 +12,11 @@ class StrcpyFunction extends ArrayFunction, DataFlowFunction, TaintFunction {
1212 this .hasName ( "_mbscpy" ) or
1313 this .hasName ( "wcscpy" ) or
1414 this .hasName ( "strncpy" ) or
15+ this .hasName ( "_strncpy_l" ) or
1516 this .hasName ( "_mbsncpy" ) or
16- this .hasName ( "wcsncpy" )
17+ this .hasName ( "_mbsncpy_l" ) or
18+ this .hasName ( "wcsncpy" ) or
19+ this .hasName ( "_wcsncpy_l" )
1720 }
1821
1922 override predicate hasArrayInput ( int bufParam ) {
@@ -31,8 +34,11 @@ class StrcpyFunction extends ArrayFunction, DataFlowFunction, TaintFunction {
3134 override predicate hasArrayWithVariableSize ( int bufParam , int countParam ) {
3235 (
3336 this .hasName ( "strncpy" ) or
37+ this .hasName ( "_strncpy_l" ) or
3438 this .hasName ( "_mbsncpy" ) or
35- this .hasName ( "wcsncpy" )
39+ this .hasName ( "_mbsncpy_l" ) or
40+ this .hasName ( "wcsncpy" ) or
41+ this .hasName ( "_wcsncpy_l" )
3642 ) and
3743 bufParam = 0 and
3844 countParam = 2
@@ -76,8 +82,11 @@ class StrcpyFunction extends ArrayFunction, DataFlowFunction, TaintFunction {
7682 // these may do only a partial copy of the input buffer to the output
7783 // buffer
7884 this .hasName ( "strncpy" ) or
85+ this .hasName ( "_strncpy_l" ) or
7986 this .hasName ( "_mbsncpy" ) or
80- this .hasName ( "wcsncpy" )
87+ this .hasName ( "_mbsncpy_l" ) or
88+ this .hasName ( "wcsncpy" ) or
89+ this .hasName ( "_wcsncpy_l" )
8190 ) and (
8291 input .isInParameter ( 2 ) or
8392 input .isInParameterPointer ( 1 )
0 commit comments