diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2013-06-21 10:54:57 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2013-06-21 10:54:57 +0000 |
commit | bb273d554d61c1a851158b0c79c2d3f51a845bbd (patch) | |
tree | 88ab1dd0e6afc49abeaf4f442c8db2ad940d38e5 /lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc | |
parent | 48e54204b82ba982ed7992847413dd0043fdc700 (diff) |
[santizer] Disable several EVIOxxx ioctls on older kernels.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@184539 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc')
-rwxr-xr-x | lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc index 80f252196..887530aed 100755 --- a/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +++ b/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc @@ -33,13 +33,15 @@ static unsigned ioctl_table_size = 0; // require a global initializer. And this table must be available before global // initializers are run. static void ioctl_table_fill() { -#define _(rq, tp, sz) \ - CHECK(ioctl_table_size < ioctl_table_max); \ - ioctl_table[ioctl_table_size].req = IOCTL_##rq; \ - ioctl_table[ioctl_table_size].type = ioctl_desc::tp; \ - ioctl_table[ioctl_table_size].size = sz; \ - ioctl_table[ioctl_table_size].name = #rq; \ - ++ioctl_table_size; +#define _(rq, tp, sz) \ + if (IOCTL_##rq != IOCTL_NOT_PRESENT) { \ + CHECK(ioctl_table_size < ioctl_table_max); \ + ioctl_table[ioctl_table_size].req = IOCTL_##rq; \ + ioctl_table[ioctl_table_size].type = ioctl_desc::tp; \ + ioctl_table[ioctl_table_size].size = sz; \ + ioctl_table[ioctl_table_size].name = #rq; \ + ++ioctl_table_size; \ + } _(FIOASYNC, READ, sizeof(int)); _(FIOCLEX, NONE, 0); |