diff options
| author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2013-10-31 01:17:41 +0000 |
|---|---|---|
| committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2013-10-31 01:17:41 +0000 |
| commit | 1cb37c4ee54bb2b4de0a108cd3ec4de0f30c6d95 (patch) | |
| tree | 0eff919e76ac1901b1a4b71d87de7f9762243cec /compiler-rt/lib/msan | |
| parent | 85cee41633cca5a9a4ffd1766318a8880b813d4e (diff) | |
| download | bcm5719-llvm-1cb37c4ee54bb2b4de0a108cd3ec4de0f30c6d95.tar.gz bcm5719-llvm-1cb37c4ee54bb2b4de0a108cd3ec4de0f30c6d95.zip | |
[sanitizer] Intercept getline, getdelim.
llvm-svn: 193730
Diffstat (limited to 'compiler-rt/lib/msan')
| -rw-r--r-- | compiler-rt/lib/msan/lit_tests/getline.cc | 30 | ||||
| -rw-r--r-- | compiler-rt/lib/msan/lit_tests/getline_test_data | 2 |
2 files changed, 32 insertions, 0 deletions
diff --git a/compiler-rt/lib/msan/lit_tests/getline.cc b/compiler-rt/lib/msan/lit_tests/getline.cc new file mode 100644 index 00000000000..27168a88560 --- /dev/null +++ b/compiler-rt/lib/msan/lit_tests/getline.cc @@ -0,0 +1,30 @@ +// RUN: %clangxx_msan -O0 %s -o %t && %t %p + +#include <assert.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +int main(int argc, char **argv) { + assert(argc == 2); + char buf[1024]; + snprintf(buf, sizeof(buf), "%s/%s", argv[1], "getline_test_data"); + + FILE *fp = fopen(buf, "r"); + assert(fp); + + char *line = 0; + size_t len = 0; + int n = getline(&line, &len, fp); + assert(n == 6); + assert(strcmp(line, "abcde\n") == 0); + + n = getline(&line, &len, fp); + assert(n == 6); + assert(strcmp(line, "12345\n") == 0); + + free(line); + fclose(fp); + + return 0; +} diff --git a/compiler-rt/lib/msan/lit_tests/getline_test_data b/compiler-rt/lib/msan/lit_tests/getline_test_data new file mode 100644 index 00000000000..5ba1d4cec0d --- /dev/null +++ b/compiler-rt/lib/msan/lit_tests/getline_test_data @@ -0,0 +1,2 @@ +abcde +12345 |

