Top all-time · #2427
Geoffrey Thomas
Personal blog · ldpreload.com · on HN as geofftsystemsprogramming
Geoffrey Thomas's personal blog at ldpreload.com covers systems and programming. Since 2015, 34 different Hacker News readers have linked it 46 times, most often “Signalfd Is Useless (2015)”. The last post was in 2018, but the archive is still widely read.
Most-linked posts?
- Signalfd Is Useless (2015)14 people · 14 mentions · first linked 2015-05-17
- Hostnames and usernames to reserve5 people · 6 mentions · first linked 2015-11-26
- Finding a kernel regression in half an hour with git bisect run (2018)5 people · 5 mentions · first linked 2018-03-07
- Smashing the heap by overflowing the stack3 people · 5 mentions · first linked 2015-07-07
- Nine reasons Python Sucks3 people · 3 mentions · first linked 2018-12-19
- /p/kernel-modules-in-rust-lssna2019.pdf2 people · 6 mentions · first linked 2019-08-30
- SSH ControlMaster and ControlPath (2014)2 people · 2 mentions · first linked 2024-02-12
- Signalfd is useless2 people · 2 mentions · first linked 2015-05-18
What Hacker News says?
> He clearly can separate the blunt stubbornness ("we do not break userland, period") For what it's worth, he doesn't even avoid breaking userland. Off the top of my head, we had a problem at work a few months back where kernel 4.3 and below rounded up listen(fd, 0) to something nonzero, kernel 4.4 didn't, and a piece of commercial software was (inexplicably) using listen(fd, 0). https://ldpreload.com/blog/git-bisec…
Comment linking /blog/git-bisect-run
on “Linus Torvalds apologizes for his behavior, takes time off”Submitted Finding a kernel regression in half an hour with git bisect run (2018) as a story · 209 points
HN discussionRelated: a list of names that probably should be reserved (for example, to prevent someone setting up a user-profile page at a URL you don't want them to control): https://ldpreload.com/blog/names-to-reserve
Comment linking /blog/names-to-reserve
on “Naughty Strings: A list of strings likely to cause issues as user-input data”Submitted Hostnames and usernames to reserve as a story · 206 points
HN discussionThis is good, but it's sad that #!/usr/bin/env python will no longer work as the go-to shebang since python won't exist, only python3 will exist by default. Geofft[1] has a nifty solution but it's not as cross platform as the old tride-n-true #!/usr/bin/env python: #!/bin/sh """"type python3 >/dev/null 2>&1 && exec python3 "$(readlink -f "$0")" "$@" #""" """"exec python "$(readlink -f "$0")" "$@" #""" [1] https://ld…
Comment linking /blog/usr-bin-python-23
on “Python 2 will be replaced with Python 3 in the next RHEL major release”Submitted Signalfd is useless as a story · 105 points
HN discussionFrankly, one of the best things we could do to help this hypothetical future language be adopted is to have precedent for Linux using another language. We're really trying two things here - getting Linux to use some Rust, and getting Linux to use some other language, with an independent compiler. That second part is pretty significant by itself (we've had discussions about build systems, compiler ABI bugs, etc.), an…
Comment linking /p/kernel-modules-in-rust-lssna2019.pdf
on “An RFC that adds support for Rust to the Linux kernel”Submitted Signalfd Is Useless (2015) as a story · 69 points
HN discussionCheck out out slides 20-21 from Linux Security Summit 2019 - there are specific reasons why Linux didn't like C++ that don't apply to Rust. https://ldpreload.com/p/kernel-modules-in-rust-lssna2019.pdf Basically, we think (and we hope Linus agrees) that Rust has the relevant benefits of C++ without the downsides that have so far kept C++ from being adopted. (It has other great features that C++ doesn't have like comp…
Comment linking /p/kernel-modules-in-rust-lssna2019.pdf
on “An RFC that adds support for Rust to the Linux kernel”Submitted Smashing the heap by overflowing the stack as a story · 28 points
HN discussionHere's our presentation at Linux Security Summit last year outlining why I think you can legitimately object to C++ and not Rust for this particular use case: https://youtu.be/RyY01fRyGhM?t=313 (alternatively, slides 19-21 of https://ldpreload.com/p/kernel-modules-in-rust-lssna2019.pdf )
Comment linking /p/kernel-modules-in-rust-lssna2019.pdf
on “Linux kernel in-tree Rust support”Submitted Hostnames and Usernames to Reserve as a story · 4 points
HN discussionI don't know Linus's reasons specifically, but our presentation at Linux Security Summit last year laid out why we think that Linus's past objections to C++ don't apply to Rust. See slides 19-21 of https://ldpreload.com/p/kernel-modules-in-rust-lssna2019.pdf . His previous objections were: In fact, in Linux we did try C++ once already, back in 1992. It sucks. Trust me - writing kernel code in C++ is a BLOODY STUPID…
Comment linking /p/kernel-modules-in-rust-lssna2019.pdf
on “Linux kernel in-tree Rust support”Submitted Nine reasons Python Sucks as a story · 4 points
HN discussion"signalfd is useless" is a good article: https://ldpreload.com/blog/signalfd-is-useless It goes into the problems with Unix signals, and then explains why Linux's attempt to solve them, signalfd, doesn't work well.
Comment linking /blog/signalfd-is-useless
on “Writing a Unix clone in about a month”Submitted Signalfd is useless as a story · 4 points
HN discussionThe program in this blog post https://ldpreload.com/blog/stack-smashes-you corrupts memory despite being well-defined C. If you think that program should output what it actually does, I think you need to point to the line of the spec that allows it to behave that way. Stack probing isn't the only option. Other options include fixed maximum sized stacks, architectures with separate stack and heap address spaces, etc.
Comment linking /blog/stack-smashes-you
on “System Down: A systemd-journald exploit”Submitted 9 Reasons Python Sucks as a story · 3 points
HN discussionWe're working on it: https://github.com/fishinabarrel/linux-kernel-module-rust Check out the demo in PR #122, which lets you create three boolean sysctls and a character device that prints the state of those sysctls in JSON (using serde). We gave a talk about it last week at Linux Security Summit, I'll submit it once the recording is up :) Slides are at https://ldpreload.com/p/kernel-modules-in-rust-lssna2019.pdf .
Comment linking /p/kernel-modules-in-rust-lssna2019.pdf
on “Linux kernel drivers in Rust might become an option in the future”Submitted Finding a kernel regression in half an hour with Git bisect run as a story · 3 points
HN discussionIf you're looking for a background on the attack itself, I did a writeup of the basic attack some time ago at https://ldpreload.com/blog/stack-smashes-you . The new thing is that Qualys has developed this into a real class of exploits against lots of software; I think we all thought that it was relatively rare to run into this vulnerability.
Comment linking /blog/stack-smashes-you
on “The Stack Clash”Submitted SSH ControlMaster and ControlPath (2014) as a story · 2 points
HN discussionThe "signalfd is useless" article comes up every so often. The title might be an exaggeration, but there are problems to be aware of: https://ldpreload.com/blog/signalfd-is-useless In fact it looks like geofft is in this thread below :)
Comment linking /blog/signalfd-is-useless
on “Linux Programming: Signals the easy way”Submitted Stupid tricks at the userspace/kernelspace boundary as a story · 2 points
HN discussion> So when you build a web mail system you need to explicitly blacklist those five email addresses … Actually, you should blacklist all of the addresses listed in RFC 2142¹. Also consider this blog post for additional addresses to block: https://ldpreload.com/blog/names-to-reserve 1. https://tools.ietf.org/html/rfc2142
Comment linking /blog/names-to-reserve
on “Issue with TLS-SNI-01 and Shared Hosting Infrastructure”Submitted Hostnames and Usernames to Reserve (2015) as a story · 2 points
HN discussionThere was a bug in a released kernel I ended up having to hunt down back last summer. It required a very specific set of circumstances to actually trigger the bug, but luckily for us we found some obvious side effects from the bug such that it was possible to get the relevant information via a very simple statically compiled C program (there would be a certain value under /sys). I used that C program as the initramf…
Comment linking /blog/git-bisect-run
on “How is the Linux kernel tested?”Submitted Finding a kernel regression in half an hour with Git bisect run as a story · 2 points
HN discussionUNIX signals *do not* queue. If two or more signals with the same number are sent faster than the receiving thread handles them (due to the signal being blocked and/or the thread not being scheduled), all but the last will be lost irrevocably. There is no mechanism to prevent this. https://ldpreload.com/blog/signalfd-is-useless
Comment linking /blog/signalfd-is-useless
on “Building a message queue with only two UNIX signals”Submitted Signalfd is useless (2015) as a story · 2 points
HN discussion