@@ -77,17 +77,17 @@ public void M()
7777 var sink3 = "" ;
7878 ReturnRef ( sink2 , ref sink3 , ref sink3 ) ;
7979 Check ( sink3 ) ;
80- var sink13 = ( ( IEnumerable < string > ) new string [ ] { sink3 } ) . SelectEven ( x => x ) ;
80+ var sink13 = ( ( IEnumerable < string > ) new string [ ] { sink3 } ) . SelectEven ( x => x ) . First ( ) ;
8181 Check ( sink13 ) ;
82- var sink14 = ( ( IEnumerable < string > ) new string [ ] { sink13 . First ( ) } ) . Select ( ReturnCheck ) ;
82+ var sink14 = ( ( IEnumerable < string > ) new string [ ] { sink13 } ) . Select ( ReturnCheck ) . First ( ) ;
8383 Check ( sink14 ) ;
84- var sink15 = ( ( IEnumerable < string > ) new string [ ] { sink14 . First ( ) } ) . Zip ( ( ( IEnumerable < string > ) new string [ ] { "" } ) , ( x , y ) => x ) ;
84+ var sink15 = ( ( IEnumerable < string > ) new string [ ] { sink14 } ) . Zip ( ( ( IEnumerable < string > ) new string [ ] { "" } ) , ( x , y ) => x ) . First ( ) ;
8585 Check ( sink15 ) ;
86- var sink16 = ( ( IEnumerable < string > ) new string [ ] { "" } ) . Zip ( ( ( IEnumerable < string > ) new string [ ] { sink15 . First ( ) } ) , ( x , y ) => y ) ;
86+ var sink16 = ( ( IEnumerable < string > ) new string [ ] { "" } ) . Zip ( ( ( IEnumerable < string > ) new string [ ] { sink15 } ) , ( x , y ) => y ) . First ( ) ;
8787 Check ( sink16 ) ;
88- var sink17 = sink14 . Aggregate ( "" , ( acc , s ) => acc + s , x => x ) ;
88+ var sink17 = ( ( IEnumerable < string > ) new string [ ] { sink14 } ) . Aggregate ( "" , ( acc , s ) => acc + s , x => x ) ;
8989 Check ( sink17 ) ;
90- var sink18 = ( ( IEnumerable < string > ) new string [ ] { "" } ) . Aggregate ( sink14 . First ( ) , ( acc , s ) => acc + s , x => x ) ;
90+ var sink18 = ( ( IEnumerable < string > ) new string [ ] { "" } ) . Aggregate ( sink14 , ( acc , s ) => acc + s , x => x ) ;
9191 Check ( sink18 ) ;
9292 int sink21 ;
9393 Int32 . TryParse ( sink18 , out sink21 ) ;
@@ -109,19 +109,19 @@ public void M()
109109 Check ( nonSink0 ) ;
110110 ReturnRef ( sink1 , ref sink1 , ref nonSink0 ) ;
111111 Check ( nonSink0 ) ;
112- var nonSink1 = ( ( IEnumerable < string > ) new string [ ] { nonSink0 } ) . SelectEven ( x => x ) ;
113- Check ( nonSink1 ) ;
114- nonSink1 = ( ( IEnumerable < string > ) new string [ ] { nonSink0 } ) . Select ( x => x ) ;
115- Check ( nonSink1 ) ;
116- nonSink1 = ( ( IEnumerable < string > ) new string [ ] { sink14 . First ( ) } ) . Zip ( ( ( IEnumerable < string > ) new string [ ] { "" } ) , ( x , y ) => y ) ;
117- Check ( nonSink1 ) ;
118- nonSink1 = ( ( IEnumerable < string > ) new string [ ] { "" } ) . Zip ( ( ( IEnumerable < string > ) new string [ ] { sink15 . First ( ) } ) , ( x , y ) => x ) ;
119- Check ( nonSink1 ) ;
120- nonSink0 = sink14 . Aggregate ( "" , ( acc , s ) => acc , x => x ) ;
112+ nonSink0 = ( ( IEnumerable < string > ) new string [ ] { nonSink0 } ) . SelectEven ( x => x ) . First ( ) ;
121113 Check ( nonSink0 ) ;
122- nonSink0 = sink14 . Aggregate ( "" , ( acc , s ) => acc + s , x => "" ) ;
114+ nonSink0 = ( ( IEnumerable < string > ) new string [ ] { nonSink0 } ) . Select ( x => x ) . First ( ) ;
123115 Check ( nonSink0 ) ;
124- nonSink0 = nonSink1 . Aggregate ( sink1 , ( acc , s ) => s , x => x ) ;
116+ nonSink0 = ( ( IEnumerable < string > ) new string [ ] { sink14 } ) . Zip ( ( ( IEnumerable < string > ) new string [ ] { "" } ) , ( x , y ) => y ) . First ( ) ;
117+ Check ( nonSink0 ) ;
118+ nonSink0 = ( ( IEnumerable < string > ) new string [ ] { "" } ) . Zip ( ( ( IEnumerable < string > ) new string [ ] { sink15 } ) , ( x , y ) => x ) . First ( ) ;
119+ Check ( nonSink0 ) ;
120+ nonSink0 = ( ( IEnumerable < string > ) new string [ ] { sink14 } ) . Aggregate ( "" , ( acc , s ) => acc , x => x ) ;
121+ Check ( nonSink0 ) ;
122+ nonSink0 = ( ( IEnumerable < string > ) new string [ ] { sink14 } ) . Aggregate ( "" , ( acc , s ) => acc + s , x => "" ) ;
123+ Check ( nonSink0 ) ;
124+ nonSink0 = ( ( IEnumerable < string > ) new string [ ] { nonSink0 } ) . Aggregate ( sink1 , ( acc , s ) => s , x => x ) ;
125125 Check ( nonSink0 ) ;
126126 int nonSink2 ;
127127 Int32 . TryParse ( nonSink0 , out nonSink2 ) ;
@@ -158,7 +158,7 @@ public void M()
158158 var sink8 = "" ;
159159 OutRef ( ref sink8 ) ;
160160 Check ( sink8 ) ;
161- var sink12 = OutYield ( ) ;
161+ var sink12 = OutYield ( ) . First ( ) ;
162162 Check ( sink12 ) ;
163163 var sink23 = TaintedParam ( nonSink0 ) ; // even though the argument is not tainted, the parameter is considered tainted
164164 Check ( sink23 ) ;
@@ -202,30 +202,32 @@ public void M()
202202 Check ( nonSink0 ) ;
203203 }
204204
205- public void M2 ( IQueryable < string > tainted , IQueryable < string > notTainted )
205+ public void M2 ( )
206206 {
207+ IQueryable < string > tainted = new [ ] { "taint source" } . AsQueryable ( ) ;
208+ IQueryable < string > notTainted = new [ ] { "not tainted" } . AsQueryable ( ) ;
207209 // Flow into a callable via library call, tainted
208210 Func < string , string > f1 = sinkParam10 => { Check ( sinkParam10 ) ; return sinkParam10 ; } ;
209211 System . Linq . Expressions . Expression < Func < string , string > > f2 = x => ReturnCheck2 ( x ) ;
210- var sink24 = tainted . Select ( f1 ) ;
212+ var sink24 = tainted . Select ( f1 ) . First ( ) ;
211213 Check ( sink24 ) ;
212- var sink25 = tainted . Select ( f2 ) ;
214+ var sink25 = tainted . Select ( f2 ) . First ( ) ;
213215 Check ( sink25 ) ;
214- var sink26 = tainted . Select ( ReturnCheck3 ) ;
216+ var sink26 = tainted . Select ( ReturnCheck3 ) . First ( ) ;
215217 Check ( sink26 ) ;
216218
217219 // Flow into a callable via library call, not tainted
218220 Func < string , string > f3 = nonSinkParam => { Check ( nonSinkParam ) ; return nonSinkParam ; } ;
219221 System . Linq . Expressions . Expression < Func < string , string > > f4 = x => NonReturnCheck ( x ) ;
220- var nonSink = notTainted . Select ( f1 ) ;
222+ var nonSink = notTainted . Select ( f1 ) . First ( ) ;
221223 Check ( nonSink ) ;
222- nonSink = notTainted . Select ( f2 ) ;
224+ nonSink = notTainted . Select ( f2 ) . First ( ) ;
223225 Check ( nonSink ) ;
224- nonSink = notTainted . Select ( f3 ) ;
226+ nonSink = notTainted . Select ( f3 ) . First ( ) ;
225227 Check ( nonSink ) ;
226- nonSink = notTainted . Select ( f4 ) ;
228+ nonSink = notTainted . Select ( f4 ) . First ( ) ;
227229 Check ( nonSink ) ;
228- nonSink = notTainted . Select ( ReturnCheck3 ) ;
230+ nonSink = notTainted . Select ( ReturnCheck3 ) . First ( ) ;
229231 Check ( nonSink ) ;
230232 }
231233
0 commit comments