Skip to content

Commit 442ffa9

Browse files
committed
[sanitizer] avoid using ioctl constants for glibc above 2.41
1 parent d011ca7 commit 442ffa9

File tree

3 files changed

+15
-24
lines changed

3 files changed

+15
-24
lines changed

compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -345,14 +345,14 @@ static void ioctl_table_fill() {
345345
_(SOUND_PCM_WRITE_FILTER, WRITE, sizeof(int));
346346
_(TCFLSH, NONE, 0);
347347
# if SANITIZER_TERMIOS_IOCTL_CONSTANTS
348-
_(SANITIZER_TCGETS, WRITE, struct_termios_sz);
348+
_(TCGETS, WRITE, struct_termios_sz);
349349
# endif
350350
_(TCSBRK, NONE, 0);
351351
_(TCSBRKP, NONE, 0);
352352
# if SANITIZER_TERMIOS_IOCTL_CONSTANTS
353-
_(SANITIZER_TCSETS, READ, struct_termios_sz);
354-
_(SANITIZER_TCSETSF, READ, struct_termios_sz);
355-
_(SANITIZER_TCSETSW, READ, struct_termios_sz);
353+
_(TCSETS, READ, struct_termios_sz);
354+
_(TCSETSF, READ, struct_termios_sz);
355+
_(TCSETSW, READ, struct_termios_sz);
356356
# endif
357357
_(TCXONC, NONE, 0);
358358
_(TIOCGLCKTRMIOS, WRITE, struct_termios_sz);

compiler-rt/lib/sanitizer_common/sanitizer_platform.h

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -483,25 +483,16 @@
483483
#endif
484484

485485
#if SANITIZER_LINUX
486-
# if !SANITIZER_GLIBC || SANITIZER_PPC
486+
# if SANITIZER_GLIBC
487487
// Workaround for
488488
// glibc/commit/3d3572f59059e2b19b8541ea648a6172136ec42e
489489
// Linux: Keep termios ioctl constants strictly internal
490-
# define SANITIZER_TERMIOS_IOCTL_CONSTANTS 1
491-
# if SANITIZER_GLIBC && SANITIZER_PPC
492-
# define SANITIZER_TCGETS 0x402c7413
493-
# define SANITIZER_TCSETS 0x802c7414
494-
# define SANITIZER_TCSETSF 0x802c7415
495-
# define SANITIZER_TCSETSW 0x802c7416
490+
# if __GLIBC_PREREQ(2, 41)
491+
# define SANITIZER_TERMIOS_IOCTL_CONSTANTS 0
492+
# else
493+
# define SANITIZER_TERMIOS_IOCTL_CONSTANTS 1
494+
# endif
496495
# else
497-
# define SANITIZER_TCGETS TCGETS
498-
# define SANITIZER_TCSETS TCSETS
499-
# define SANITIZER_TCSETSF TCSETSF
500-
# define SANITIZER_TCSETSW TCSETSW
496+
# define SANITIZER_TERMIOS_IOCTL_CONSTANTS 1
501497
# endif
502-
# else
503-
# define SANITIZER_TERMIOS_IOCTL_CONSTANTS 0
504-
# endif
505-
#endif
506-
507498
#endif // SANITIZER_PLATFORM_H

compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -781,17 +781,17 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
781781
unsigned IOCTL_TCFLSH = TCFLSH;
782782
unsigned IOCTL_TCGETA = TCGETA;
783783
# if SANITIZER_TERMIOS_IOCTL_CONSTANTS
784-
unsigned IOCTL_TCGETS = SANITIZER_TCGETS;
784+
unsigned IOCTL_TCGETS = TCGETS;
785785
# endif
786786
unsigned IOCTL_TCSBRK = TCSBRK;
787787
unsigned IOCTL_TCSBRKP = TCSBRKP;
788788
unsigned IOCTL_TCSETA = TCSETA;
789789
unsigned IOCTL_TCSETAF = TCSETAF;
790790
unsigned IOCTL_TCSETAW = TCSETAW;
791791
# if SANITIZER_TERMIOS_IOCTL_CONSTANTS
792-
unsigned IOCTL_TCSETS = SANITIZER_TCSETS;
793-
unsigned IOCTL_TCSETSF = SANITIZER_TCSETSF;
794-
unsigned IOCTL_TCSETSW = SANITIZER_TCSETSW;
792+
unsigned IOCTL_TCSETS = TCSETS;
793+
unsigned IOCTL_TCSETSF = TCSETSF;
794+
unsigned IOCTL_TCSETSW = TCSETSW;
795795
# endif
796796
unsigned IOCTL_TCXONC = TCXONC;
797797
unsigned IOCTL_TIOCGLCKTRMIOS = TIOCGLCKTRMIOS;

0 commit comments

Comments
 (0)