diff options
author | Alexey Samsonov <samsonov@google.com> | 2014-02-26 14:42:38 +0000 |
---|---|---|
committer | Alexey Samsonov <samsonov@google.com> | 2014-02-26 14:42:38 +0000 |
commit | 50da249d327db4e710812e1d8ae9e0003af554db (patch) | |
tree | b8f457ffff39736f2925f1e8a6240b8b947dd4c4 | |
parent | 95e0c463269b689c03f38e844bfc7a1390975081 (diff) |
Support 'q' length modifier in scanf/printf interceptors
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202268 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/sanitizer_common/sanitizer_common_interceptors_format.inc | 2 | ||||
-rw-r--r-- | lib/sanitizer_common/tests/sanitizer_format_interceptor_test.cc | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/lib/sanitizer_common/sanitizer_common_interceptors_format.inc b/lib/sanitizer_common/sanitizer_common_interceptors_format.inc index 40ebef2b1..f7b085437 100644 --- a/lib/sanitizer_common/sanitizer_common_interceptors_format.inc +++ b/lib/sanitizer_common/sanitizer_common_interceptors_format.inc @@ -116,6 +116,8 @@ static int format_get_value_size(char convSpecifier, return lengthModifier[1] == 'h' ? sizeof(char) : sizeof(short); case 'l': return lengthModifier[1] == 'l' ? sizeof(long long) : sizeof(long); + case 'q': + return sizeof(long long); case 'L': return sizeof(long long); case 'j': diff --git a/lib/sanitizer_common/tests/sanitizer_format_interceptor_test.cc b/lib/sanitizer_common/tests/sanitizer_format_interceptor_test.cc index 0ea3932a7..da2999591 100644 --- a/lib/sanitizer_common/tests/sanitizer_format_interceptor_test.cc +++ b/lib/sanitizer_common/tests/sanitizer_format_interceptor_test.cc @@ -111,6 +111,7 @@ TEST(SanitizerCommonInterceptors, Scanf) { testScanf("ab%u%dc", 2, I, I); testScanf("%ld", 1, L); testScanf("%llu", 1, LL); + testScanf("%qd", 1, LL); testScanf("a %hd%hhx", 2, S, C); testScanf("%c", 1, C); |