Package: facter
Version: 3.11.0-4.1
Severity: grave
Running facter crashes right away on startup with an invalid pointer
being passed to free().
~# facter
free(): invalid pointer
Aborted
Stacktrace:
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007ffff79c255b in __GI_abort () at abort.c:79
#2 0x00007ffff7a1b038 in __libc_message (action=action@entry=do_abort,
fmt=fmt@entry=0x7ffff7b27f3e "%s\n") at ../sysdeps/posix/libc_fatal.c:181
#3 0x00007ffff7a223da in malloc_printerr (str=str@entry=0x7ffff7b260e0
"free(): invalid pointer") at malloc.c:5339
#4 0x00007ffff7a23dcc in _int_free (av=<optimized out>, p=<optimized
out>, have_lock=0) at malloc.c:4173
#5 0x00007ffff7e7a5d4 in __gnu_cxx::new_allocator<char>::deallocate
(this=0x7fffffffdca0, __p=<optimized out>) at
/usr/include/c++/9/ext/new_allocator.h:119
#6 std::allocator_traits<std::allocator<char> >::deallocate (__a=...,
__n=<optimized out>, __p=<optimized out>) at
/usr/include/c++/9/bits/alloc_traits.h:470
#7 std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >::_M_destroy (__size=<optimized out>,
this=0x7fffffffdca0) at /usr/include/c++/9/bits/basic_string.h:237
#8 std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >::_M_dispose (this=0x7fffffffdca0) at
/usr/include/c++/9/bits/basic_string.h:232
#9 std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >::~basic_string (this=0x7fffffffdca0,
__in_chrg=<optimized out>) at /usr/include/c++/9/bits/basic_string.h:658
#10 facter::facts::collection::add_external_facts_dir
(this=0x7fffffffe1e0, resolvers=std::vector of length 4, capacity 4 =
{...}, dir=..., warn=<optimized out>) at ./lib/src/facts/collection.cc:160
#11 0x00007ffff7e7abd8 in facter::facts::collection::add_external_facts
(this=0x7fffffffe1e0, directories=std::vector of length 0, capacity 0)
at ./lib/src/facts/collection.cc:197
#12 0x000055555557154c in main ()
I noticed this starting 2020-06-08 on all Debian Unstable machines I
admin. Only notable thing done on the machines has been `apt update &&
apt upgrade`. Presumably this issue is caused in combination with an
update of another package.
I've re-compiled facter 3.11.0 myself from source and was unable to
replicate the issue this way.
Maybe a recompile would be sufficient to fix this crash?
I'd be happy to do further testing, as this prevents Puppet from running
on any of the Debian Unstable machines I'm an admin of.