[PATCH 00/11] Fix fgetsgent_r data corruption bug (20338)
Florian Weimer
fweimer@redhat.com
Fri Jul 17 08:29:56 GMT 2020
We have recently seen an uptick in reports of this bug.
The __libc_readline_unlocked removal and the nss_compat mmap fix for bug
26258 could potentially be dropped from this series.
Tested on i686-linux-gnu. I verified that the test case crashes with
glibc 2.31 on both i686 and x86-64, and not just results in failures
under valgrind.
Thanks,
Florian
Florian Weimer (11):
nss_files: Consolidate file opening in __nss_files_fopen
nss_compat: Do not use mmap to read database files (bug 26258)
nss_files: Consolidate line parse declarations in <nss_files.h>
nss_files: Use generic result pointer in parse_line
libio: Add fseterr_unlocked for internal use
nss: Add __nss_fgetent_r
grp: Implement fgetgrent_r using __nss_fgetent_r
gshadow: Implement fgetsgent_r using __nss_fgetent_r (bug 20338)
pwd: Implement fgetpwent_r using __nss_fgetent_r
shadow: Implement fgetspent_r using __nss_fgetent_r
libio: Remove __libc_readline_unlocked
grp/fgetgrent_r.c | 54 +------
gshadow/Makefile | 2 +-
gshadow/fgetsgent_r.c | 41 +----
gshadow/tst-fgetsgent_r.c | 192 +++++++++++++++++++++++
include/grp.h | 6 -
include/gshadow.h | 6 -
include/netdb.h | 13 --
include/netinet/ether.h | 6 -
include/nss_files.h | 84 ++++++++++
include/pwd.h | 6 -
include/rpc/netdb.h | 6 -
include/shadow.h | 6 -
include/stdio.h | 20 +--
libio/Makefile | 4 +-
libio/Versions | 1 -
libio/readline.c | 170 ---------------------
libio/tst-readline.c | 237 -----------------------------
nss/Makefile | 4 +-
nss/Versions | 1 +
nss/nss_compat/compat-grp.c | 6 +-
nss/nss_compat/compat-initgroups.c | 6 +-
nss/nss_compat/compat-pwd.c | 6 +-
nss/nss_compat/compat-spwd.c | 6 +-
nss/nss_fgetent_r.c | 55 +++++++
nss/nss_files/files-XXX.c | 82 ++++------
nss/nss_files/files-alias.c | 5 +-
nss/nss_files/files-initgroups.c | 6 +-
nss/nss_files/files-netgrp.c | 5 +-
nss/nss_files/files-parse.c | 6 +-
nss/nss_files_fopen.c | 47 ++++++
nss/nss_parse_line_result.c | 46 ++++++
nss/nss_readline.c | 99 ++++++++++++
pwd/fgetpwent_r.c | 43 +-----
shadow/fgetspent_r.c | 43 +-----
34 files changed, 609 insertions(+), 711 deletions(-)
create mode 100644 gshadow/tst-fgetsgent_r.c
create mode 100644 include/nss_files.h
delete mode 100644 libio/readline.c
delete mode 100644 libio/tst-readline.c
create mode 100644 nss/nss_fgetent_r.c
create mode 100644 nss/nss_files_fopen.c
create mode 100644 nss/nss_parse_line_result.c
create mode 100644 nss/nss_readline.c
--
2.26.2
More information about the Libc-alpha
mailing list