5 ms·
FWIW the sandbox-disabling bit in xz was in CMake logic, not autoconf. (Or at least the obvious one is in the CMake part; maybe the autoconf is separately back
by evmar 3y ago
FWIW the sandbox-disabling bit in xz was in CMake logic, not autoconf. (Or at least the obvious one is in the CMake part; maybe the autoconf is separately backdoored.)
https://git.tukaani.org/?p=xz.git;a=commitdiff;h=328c52da8a2bbb81307644efdb58db2c422d9ba7 https://git.tukaani.org/?p=xz.git;a=commitdiff;h=328c52da8a2...
- ajross 3y agoYeah, this autotools thing is just a chance for people to whine about a favorite hated technology[1]. Clever attackers (and this was a very clever attacker) can hide stuff in anything. Anyone who thinks that CMake or Bazel or Python or whatever can't hide misbehavior is just fooling themselves. [1] And even then it's more hatred of M4 than it is anything in autoconf per se.
- kergonath 3y ago> And even then it's more hatred of M4 than it is anything in autoconf per se. To be fair, M4 is rather…special. And when you add that in a Makefile template with shell thrown into the mix it gets _very_ hairy.
- ajross 3y agoOh sure, and that's true enough. Working with autoconf[1] is a giant pain for Kids Today weaned on entirely different idioms[2]. And it's the kind of thing you can't really avoid[3] if you're going to be doing work on these traditional Linux packages. And that sucks, and it makes it look like Linux is a weird kingdom filled with dinosaurs. And that sucks because you still have to work in Linux. So you hate the proximate cause. But the boring truth is that configuration management is just a hard problem and realistically you'd hate it anyway. [1] Not so much automake/libtool, which are configured by straightforward idioms and mostly harmless. [2] Though if you've got some C preprocessor fu, it doesn't look quite so alien. [3] Though it also needs to be pointed out that 90% of the problem autoconf was originally intended to solve (gratuitously incompatible Unix variants) is basically gone now. You either write to straight ISO-C/POSIX if you're doing simple stuff, work through well-established abstraction libraries with fixed APIs, or you include well-known platform headers (Linux or otherwise) for the complicated bits. No more nonsense testing like "Hm... what header do I need for strncat()?"
- xcrunner529 3y agoBecause so much of the Linux world refuses to let C go.
- pianoben 3y agoI can't tell what the disabling element is - is it the variable rename from HAVE_LINUX_LANDLOCK_H to HAVE_LINUX_LANDLOCK? That seems the most suspicious to me, an uneducated bystander. Or, does the snippet just never compile?