attr: Add a patch to fix an unconditional infinite recursion
authorNicolas Cavallari <nicolas.cavallari@green-communications.fr>
Fri, 9 Nov 2018 11:10:50 +0000 (12:10 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Fri, 9 Nov 2018 13:08:02 +0000 (14:08 +0100)
commit99989d3b91ef6cadc0c8d1a73203178da9ac6af7
treeca1aeb378442df51c8aec427a227e5cebad2b55a
parentc2f5b3a3a866859528747edc191fb9c241343e88
attr: Add a patch to fix an unconditional infinite recursion

The bump to 2.4.48 introduced a bug that, according to the author,
only happen in certain cases on glibc. But under uclibc-ng, it happens
every time.

The bug essentially cause any program calling any libattr.so function
to enter an infinite recursion, because of a symbol conflict between
uclibc-ng and libattr wrappers, that causes the libattr wrappers to
call themselves.

This infinite recursion does not consume the stack, so programs
basically behave like they enter an infinite loop.

It is easy to reproduce with qemu_arm_versatile_defconfig +
BR2_PACKAGE_ATTR: "getfattr ." never returns and takes 100% CPU.

Upstream fixed it, but the patch is not part of a release yet,
so take the patch.

Signed-off-by: Nicolas Cavallari <nicolas.cavallari@green-communications.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/attr/0002-Switch-back-to-syscall.patch [new file with mode: 0644]