4 ms·
In modern programming you would reject these arguments as invalid and refuse to perform the execve syscall with something like EINVAL. Instead we now have this
by kpcyrd 3y ago
In modern programming you would reject these arguments as invalid and refuse to perform the execve syscall with something like EINVAL. Instead we now have this additional quirk that's going to be part of the Linux lore forever and people may start relying on as a feature.
- davipb 3y agoAt the end of the day, any system used in the real world is going to have "lore", odd quirks that only exist because of historical reasons. Sure we can try to prevent it with good programming practices, but some things are usually only obvious in hindsight, and the real world is messy.
- deleted 3y ago[deleted]
- nikanj 3y agoIn modern programming: Someone a dozen dependency-of-dependency-of-dependency steps removed from you reads an RFC tome they found under the sofa, promptly changes the API to return EINVAL for a call that previously succeeded and breaks half the world. But at least it's modern, quirk-free and pure of thought.
- mhh__ 3y agoI think this happened recently on macos: the libc string parsing functions started complying with the C spec and broke some code (so you now need to check errno and the return value if you want to know the result was valid or not) I don't think it was deliberate, I suspect they may have switched libc or something.
- ilyt 3y agoIt's all easy if you can throw backward compatibility away after every release and tell users to fuck themselves.
- spyremeown 3y agoI, for one, would love for the Kernel to tell users to f themselves sometimes an break compatibility. In that order.
- ilyt 3y agoThen nobody will want to write software for your OS. But yeah supporting shit software that connect with your software sucks