News for hackers. Stuff that matters.
Re:Sshole by creata on Thursday November 05, 2026 @02:35PM (#50383391)
I don't think so. In both Rust and C, the solution is the same - make the function explicitly fallible, instead of trying to preserve backward compatibility. In C, the function would probably just look like this, returning zero on success and negative on failure:

    int crypt2(const char *phrase, const char *setting, char *out);
You can call such a signature "insane" if you want, and that's fine, but it would have averted the bug that is the topic of discussion.
Re:Sshole by markasoftware on Thursday November 05, 2026 @03:41PM (#50384209)
what you are suggesting is a form of type safety. There are still degrees of type safety even in C, and this bug resulted from deciding that backwards compatibility is more important than type safety, which I think we agree on.
Re:Sshole by lokar on Thursday November 05, 2026 @04:12PM (#50384515)
And C has effectively deprecated bad APIs over the years. Just not this one.
Re:Sshole by quotemstr on Thursday November 05, 2026 @04:45PM (#50384891)
It's a perfectly sane signature, especially coupled with an API surface that uses the return channel for errors generally.
Re:Sshole by kazinator on Friday November 06, 2026 @06:57PM (#50400175)
[delayed]