What | Removed | Added |
---|---|---|
Resolution | FIXED | --- |
Status | RESOLVED | REOPENED |
This issue still occurs on my system when there are more than one file under /etc/environment.d/ Steps to reproduce: 1. Creates two files under /etc/environment.d/: $ sudo touch /etc/environment.d/a.conf /etc/environment.d/b.conf 2. run command su 3. The above command fails: error Segmentation fault (core dumped) I try to use gdb to debug, got the following: Breakpoint 1, econf_mergeFiles (merged_file=0x7ffecb773d18, usr_file=0x5562728da770, etc_file=0x5562728db230) at ../lib/libeconf.c:289 289 *merged_file = calloc(1, sizeof(econf_file)); (gdb) p usr_file->path $22 = 0x5562728db850 "/usr/etc//environment" (gdb) p etc_file->path $23 = 0x5562728c7220 "/etc//environment.d/a.conf" (gdb) c Continuing. Breakpoint 1, econf_mergeFiles (merged_file=0x7ffecb773d18, usr_file=0x5562728da480, etc_file=0x5562728da180) at ../lib/libeconf.c:289 289 *merged_file = calloc(1, sizeof(econf_file)); (gdb) p usr_file->path $24 = 0x0 (gdb) p etc_file->path $25 = 0x5562728c3ef0 "/etc//environment.d/b.conf" (gdb) c Continuing. Program received signal SIGSEGV, Segmentation fault. 0x00007f241617aeab in __strcmp_avx2 () from /lib64/libc.so.6 (gdb) bt #0 0x00007f241617aeab in __strcmp_avx2 () from /lib64/libc.so.6 #1 0x00007f241621c9f4 in econf_mergeFiles (merged_file=0x7ffecb773d18, usr_file=<optimized out>, etc_file=0x5562728da180) at ../lib/libeconf.c:310 #2 econf_mergeFiles (merged_file=merged_file@entry=0x7ffecb773d18, usr_file=<optimized out>, etc_file=0x5562728da180) at ../lib/libeconf.c:282 #3 0x00007f24162210cf in merge_econf_files (key_files=0x5562728d5fb0, merged_files=0x7ffecb773d18) at ../lib/mergefiles.c:225 #4 readConfigWithCallback (result=result@entry=0x7ffecb773d18, config_name=config_name@entry=0x7f241625b44a "environment", config_suffix=config_suffix@entry=0x7f241625b13f "", delim=delim@entry=0x7f241625b456 "=", comment=comment@entry=0x7f241625b140 "#", conf_dirs=<optimized out>, conf_count=0, callback=0x0, callback_data=0x0) at ../lib/readconfig.c:233 #5 0x00007f24162212ef in econf_readConfigWithCallback (key_file=0x7ffecb773d18, project=<optimized out>, usr_subdir=<optimized out>, config_name=0x7f241625b44a "environment", config_suffix=0x7f241625b13f "", delim=0x7f241625b456 "=", comment=0x7f241625b140 "#", callback=0x0, callback_data=0x0) at ../lib/libeconf.c:429 #6 0x00007f241625a7c1 in ?? () from /usr/lib64/security/pam_env.so #7 0x00007f2416258a79 in ?? () from /usr/lib64/security/pam_env.so #8 0x00007f2416259f2e in ?? () from /usr/lib64/security/pam_env.so #9 0x00007f241625a3ec in ?? () from /usr/lib64/security/pam_env.so #10 0x00007f241625a647 in pam_sm_setcred () from /usr/lib64/security/pam_env.so #11 0x00007f24162328e8 in ?? () from /lib64/libpam.so.0 #12 0x00007f2416232f74 in ?? () from /lib64/libpam.so.0 #13 0x00007f2416231e5b in pam_setcred () from /lib64/libpam.so.0 #14 0x000055626c3711df in ?? () #15 0x000055626c36cd1b in ?? () #16 0x00007f241602a2ae in __libc_start_call_main () from /lib64/libc.so.6 #17 0x00007f241602a379 in __libc_start_main_impl () from /lib64/libc.so.6 #18 0x000055626c36cd45 in ?? () (gdb) c Continuing. Program terminated with signal SIGSEGV, Segmentation fault. The program no longer exists.