From f328697397368d11ddf1df64e1c4d006d5a2343b Mon Sep 17 00:00:00 2001 From: Ian Kent Date: Wed, 19 Oct 2022 09:01:10 +0800 Subject: [PATCH] - fix invalid tsv access. --- autofs-5.1.8-fix-invalid-tsv-access.patch | 46 +++++++++++++++++++++++ autofs.spec | 7 +++- 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 autofs-5.1.8-fix-invalid-tsv-access.patch diff --git a/autofs-5.1.8-fix-invalid-tsv-access.patch b/autofs-5.1.8-fix-invalid-tsv-access.patch new file mode 100644 index 0000000..43bac27 --- /dev/null +++ b/autofs-5.1.8-fix-invalid-tsv-access.patch @@ -0,0 +1,46 @@ +autofs-5.1.8 - fix invalid tsv access + +From: Ian Kent + +When using the --dumpmaps option of automount(8) a SEGV can occur +because a thread specific data variable accessed in the code hasn't +yet been created. + +The thread specific data doesn't need to be set to list the maps +so we can create the key and rely on pthread_getspecific() returning +NULL when the value hasn't been set as this case is handled correctly. + +Signed-off-by: Ian Kent +--- + CHANGELOG | 1 + + daemon/automount.c | 9 +++++++++ + 2 files changed, 10 insertions(+) + +--- autofs-5.1.8.orig/CHANGELOG ++++ autofs-5.1.8/CHANGELOG +@@ -18,6 +18,7 @@ + - fix handling of incorrect return from umount_ent(). + - dont use initgroups() at spawn. + - fix missing unlock in sasl_do_kinit_ext_cc(). ++- fix invalid tsv access. + + 19/10/2021 autofs-5.1.8 + - add xdr_exports(). +--- autofs-5.1.8.orig/daemon/automount.c ++++ autofs-5.1.8/daemon/automount.c +@@ -2521,6 +2521,15 @@ int main(int argc, char *argv[]) + master = argv[2]; + } + ++ status = pthread_key_create(&key_thread_stdenv_vars, ++ key_thread_stdenv_vars_destroy); ++ if (status) { ++ logerr("%s: failed to create thread data key for std env vars!", ++ program); ++ macro_free_global_table(); ++ exit(1); ++ } ++ + if (master) + master_list = master_new(NULL, timeout, flags); + else diff --git a/autofs.spec b/autofs.spec index e6abce9..3d1de46 100644 --- a/autofs.spec +++ b/autofs.spec @@ -12,7 +12,7 @@ Summary: A tool for automatically mounting and unmounting filesystems Name: autofs Version: 5.1.8 -Release: 6%{?dist} +Release: 7%{?dist} Epoch: 1 License: GPLv2+ Source: https://www.kernel.org/pub/linux/daemons/autofs/v5/autofs-%{version}.tar.gz @@ -36,6 +36,7 @@ Patch17: autofs-5.1.8-remove-nonstrict-parameter-from-tree_mapent_umount_offsets Patch18: autofs-5.1.8-fix-handling-of-incorrect-return-from-umount_ent.patch Patch19: autofs-5.1.8-dont-use-initgroups-at-spawn.patch Patch20: autofs-5.1.8-fix-missing-unlock-in-sasl_do_kinit_ext_cc.patch +Patch21: autofs-5.1.8-fix-invalid-tsv-access.patch %if %{with_systemd} BuildRequires: systemd-units @@ -120,6 +121,7 @@ echo %{version}-%{release} > .version %patch18 -p1 %patch19 -p1 %patch20 -p1 +%patch21 -p1 %build LDFLAGS=-Wl,-z,now @@ -227,6 +229,9 @@ fi %dir /etc/auto.master.d %changelog +* Wed Oct 19 2022 Ian Kent - 1:5.1.8-7 +- fix invalid tsv access. + * Tue Sep 13 2022 Ian Kent - 1:5.1.8-6 - fix changelog out of order entry. - fix missing unlock in sasl_do_kinit_ext_cc().