You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
sink(&buffer);// $ MISSING: hasTaintFlow -- we cannot resolve the `read` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
let _bytes = stdin.read_to_end(&mut buffer).await?;
319
-
sink(&buffer);// $ MISSING: hasTaintFlow -- we cannot resolve the `read_to_end` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
let _bytes = stdin.read_to_string(&mut buffer).await?;
326
-
sink(&buffer);// $ MISSING: hasTaintFlow -- we cannot resolve the `read_to_string` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
sink(&buffer);// $ MISSING: hasTaintFlow -- we cannot resolve the `read_exact` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
sink(v1);// $ MISSING: hasTaintFlow -- we cannot resolve the `read_u8` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
343
-
sink(v2);// $ MISSING: hasTaintFlow -- we cannot resolve the `read_i16` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
344
-
sink(v3);// $ MISSING: hasTaintFlow -- we cannot resolve the `read_f32` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
345
-
sink(v4);// $ MISSING: hasTaintFlow -- we cannot resolve the `read_i64_le` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
sink(&buffer);// $ MISSING: hasTaintFlow -- we cannot resolve the `read_buf` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
sink(&data);// $ MISSING: hasTaintFlow -- we cannot resolve the `fill_buf` call above, which comes from `impl<R: AsyncBufRead + ?Sized> AsyncBufReadExt for R {}` in `async_buf_read_ext.rs`
sink(&buffer);// $ MISSING: hasTaintFlow -- we cannot resolve the `read_line` call above, which comes from `impl<R: AsyncBufRead + ?Sized> AsyncBufReadExt for R {}` in `async_buf_read_ext.rs`
sink(&buffer);// $ MISSING: hasTaintFlow -- we cannot resolve the `read_until` call above, which comes from `impl<R: AsyncBufRead + ?Sized> AsyncBufReadExt for R {}` in `async_buf_read_ext.rs`
381
-
sink(buffer[0]);// $ MISSING: hasTaintFlow -- we cannot resolve the `read_until` call above, which comes from `impl<R: AsyncBufRead + ?Sized> AsyncBufReadExt for R {}` in `async_buf_read_ext.rs`
sink(reader_split.next_segment().await?.unwrap());// $ MISSING: hasTaintFlow -- we cannot resolve the `split` call above, which comes from `impl<R: AsyncBufRead + ?Sized> AsyncBufReadExt for R {}` in `async_buf_read_ext.rs`
let reader = tokio::io::BufReader::new(tokio::io::stdin());// $ Alert[rust/summary/taint-sources]
394
394
letmut lines = reader.lines();
395
-
sink(lines.next_line().await?.unwrap());// $ MISSING: hasTaintFlow -- we cannot resolve the `lines` call above, which comes from `impl<R: AsyncBufRead + ?Sized> AsyncBufReadExt for R {}` in `async_buf_read_ext.rs`
sink(&buffer);// $ MISSING: hasTaintFlow="file.txt" -- we cannot resolve the `read` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
586
+
sink(&buffer);// $ hasTaintFlow="file.txt"
587
587
}
588
588
589
589
{
590
590
letmut buffer = Vec::<u8>::new();
591
591
let _bytes = file.read_to_end(&mut buffer).await?;
592
-
sink(&buffer);// $ MISSING: hasTaintFlow="file.txt" -- we cannot resolve the `read_to_end` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
592
+
sink(&buffer);// $ hasTaintFlow="file.txt"
593
593
}
594
594
595
595
{
596
596
letmut buffer = String::new();
597
597
let _bytes = file.read_to_string(&mut buffer).await?;
598
-
sink(&buffer);// $ MISSING: hasTaintFlow="file.txt" -- we cannot resolve the `read_to_string` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
598
+
sink(&buffer);// $ hasTaintFlow="file.txt"
599
599
}
600
600
601
601
{
602
602
letmut buffer = [0;100];
603
603
file.read_exact(&mut buffer).await?;
604
-
sink(&buffer);// $ MISSING: hasTaintFlow="file.txt" -- we cannot resolve the `read_exact` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
604
+
sink(&buffer);// $ hasTaintFlow="file.txt"
605
605
}
606
606
607
607
{
608
608
let v1 = file.read_u8().await?;
609
609
let v2 = file.read_i16().await?;
610
610
let v3 = file.read_f32().await?;
611
611
let v4 = file.read_i64_le().await?;
612
-
sink(v1);// $ MISSING: hasTaintFlow="file.txt" -- we cannot resolve the `read_u8` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
613
-
sink(v2);// $ MISSING: hasTaintFlow="file.txt" -- we cannot resolve the `read_i16` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
614
-
sink(v3);// $ MISSING: hasTaintFlow="file.txt" -- we cannot resolve the `read_f32` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
615
-
sink(v4);// $ MISSING: hasTaintFlow="file.txt" -- we cannot resolve the `read_i64_le` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
612
+
sink(v1);// $ hasTaintFlow="file.txt"
613
+
sink(v2);// $ hasTaintFlow="file.txt"
614
+
sink(v3);// $ hasTaintFlow="file.txt"
615
+
sink(v4);// $ hasTaintFlow="file.txt"
616
616
}
617
617
618
618
{
619
619
letmut buffer = bytes::BytesMut::new();
620
620
file.read_buf(&mut buffer).await?;
621
-
sink(&buffer);// $ MISSING: hasTaintFlow="file.txt" -- we cannot resolve the `read_buf` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
sink(&buffer2);// $ MISSING: hasTaintFlow=address -- we cannot resolve the `read` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
779
-
sink(buffer2[0]);// $ MISSING: hasTaintFlow=address -- we cannot resolve the `read` call above, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
778
+
sink(&buffer2);// $ hasTaintFlow=address
779
+
sink(buffer2[0]);// $ hasTaintFlow=address
780
780
781
781
let buffer_string = String::from_utf8_lossy(&buffer2[..n2]);
// using the `AsyncReadExt::read` extension method (higher-level)
44
44
letmut buffer1 = [0u8;64];
45
45
let bytes_read1 = futures::io::AsyncReadExt::read(&mut reader,&mut buffer1).await?;// we cannot resolve the `read` call, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
let bytes_read2 = reader.read(&mut buffer2).await?;// we cannot resolve the `read` call, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
// using the `AsyncBufReadExt::fill_buf` extension method (higher-level)
83
83
let buffer = reader2.fill_buf().await?;// we cannot resolve the `fill_buf` call, which comes from `impl<R: AsyncBufRead + ?Sized> AsyncBufReadExt for R {}` in `async_buf_read_ext.rs`
// using the `AsyncReadExt::read` extension method (higher-level)
102
102
letmut buffer1 = [0u8;64];
103
103
let bytes_read1 = futures::io::AsyncReadExt::read(&mut reader2,&mut buffer1).await?;// we cannot resolve the `read` call, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
let bytes_read2 = reader2.read(&mut buffer2).await?;// we cannot resolve the `read` call, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
// using the `AsyncBufReadExt::fill_buf` extension method (higher-level)
125
125
let buffer = reader2.fill_buf().await?;// we cannot resolve the `fill_buf` call, which comes from `impl<R: AsyncBufRead + ?Sized> AsyncBufReadExt for R {}` in `async_buf_read_ext.rs`
126
-
sink(buffer);// $ MISSING: hasTaintFlow=url
126
+
sink(buffer);// $ hasTaintFlow=url
127
127
}
128
128
129
129
{
130
130
// using the `AsyncBufReadExt::read_until` extension method
131
131
letmut line = Vec::new();
132
132
let _bytes_read = reader2.read_until(b'\n',&mut line).await?;// we cannot resolve the `read_until` call, which comes from `impl<R: AsyncBufRead + ?Sized> AsyncBufReadExt for R {}` in `async_buf_read_ext.rs`
133
-
sink(&line);// $ MISSING: hasTaintFlow=url
133
+
sink(&line);// $ hasTaintFlow=url
134
134
}
135
135
136
136
{
137
137
// using the `AsyncBufReadExt::read_line` extension method
138
138
letmut line = String::new();
139
139
let _bytes_read = reader2.read_line(&mut line).await?;// we cannot resolve the `read_line` call, which comes from `impl<R: AsyncBufRead + ?Sized> AsyncBufReadExt for R {}` in `async_buf_read_ext.rs`
140
-
sink(&line);// $ MISSING: hasTaintFlow=url
140
+
sink(&line);// $ hasTaintFlow=url
141
141
}
142
142
143
143
{
144
144
// using the `AsyncBufReadExt::read_to_end` extension method
145
145
letmut buffer = Vec::with_capacity(1024);
146
146
let _bytes_read = reader2.read_to_end(&mut buffer).await?;// we cannot resolve the `read` call, which comes from `impl<R: AsyncRead + ?Sized> AsyncReadExt for R {}` in `async_read_ext.rs`
0 commit comments