C code, judged.

12 C posts rated by Ewwsers 路 average 7.3 EWW. Beautiful, cursed and questionable C, scored 0 to 10 and roasted in the Roast Pit.

null_pointer
@null_pointer House
2d 路 c 路 0 views
Read a config value
c5 lines
9.4/10
SERIOUSLY EWW
Rated by 28 Ewwsers
Roasters formed an orderly queue around the block.
The AI roast is still asleep - it fires once, automatically, when enough judgments land.
null_pointer
@null_pointer House
8d 路 c 路 1 views
Free the list
c6 lines
6.8/10
NASTY
Rated by 17 Ewwsers
This code has lore. Dark lore.
AI ROASTFired at 11 ratings - once per post

Classic use-after-free: you hand `free` the node and then ask the corpse where the next one lives. The sanitizer is going to name a throne after this one.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.
clean_coder
@clean_coder House
29d 路 c 路 3 views
Bounded, checked, boring
c6 lines
1.8/10
RESPECTABLE
Rated by 20 Ewwsers
Clean enough to eat off. The Ewwsers approve.
The AI roast is still asleep - it fires once, automatically, when enough judgments land.
magic_number
@magic_number House
33d 路 c 路 0 views
Buffer
c3 lines
8.9/10
EWW
Rated by 22 Ewwsers
Verified haunted. Do not merge after midnight.
AI ROASTFired at 14 ratings - once per post

Four thousand bytes of malloc'd hope and then `sprintf` just starts writing wherever it damn well feels. Real nice cherry on top to hand that buffer straight to `system`, because nothing says secure shell command like concatenating three strings that were never checked once.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.
null_pointer
@null_pointer House
36d 路 c 路 0 views
Check after use
c5 lines
7.1/10
NASTY
Rated by 16 Ewwsers
Somebody's on-call phone just rang on its own.
AI ROASTFired at 10 ratings - once per post

You call strlen on a null pointer and then check for null afterward, which is like unbuckling your seatbelt halfway through the windshield. The check that could have saved you is sitting there uselessly watching the crash in the rearview.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.
off_by_one
@off_by_one House
36d 路 c 路 2 views
Read a line
c7 lines
9.6/10
SERIOUSLY EWW
Rated by 22 Ewwsers
Biohazard tape is being printed as we speak.
AI ROASTFired at 14 ratings - once per post

No bounds check on `i`, so 257 characters into this and you're writing straight into whatever the hell lives past `line`. That's not reading a line, that's a buffer overflow with a getchar costume.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.
clean_coder
@clean_coder House
36d 路 c 路 3 views
Bounded, checked, boring
c6 lines
0.4/10
NEARLY BEAUTIFUL
Rated by 12 Ewwsers
So close to perfect it hurts.
The AI roast is still asleep - it fires once, automatically, when enough judgments land.
magic_number
@magic_number House
36d 路 c 路 1 views
Buffer
c3 lines
6.6/10
GROSS
Rated by 17 Ewwsers
The Ewwsers recoiled in unison.
AI ROASTFired at 11 ratings - once per post

sprintf into a fixed 4096 buffer and then hand the result straight to system. That's not string concatenation, that's load bearing trust fall with the shell holding the net.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.
null_pointer
@null_pointer House
36d 路 c 路 0 views
String copy
c5 lines
8.2/10
DEEPLY CURSED
Rated by 22 Ewwsers
This code has lore. Dark lore.
AI ROASTFired at 14 ratings - once per post

You strcpy into a 64-byte stack buffer and return the dangling pointer like it's a gift. That thing survives the return statement by coincidence alone, and there's nothing stopping 65 happy characters from taking the whole program down with it.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.
null_pointer
@null_pointer House
37d 路 c 路 0 views
String copy
c5 lines
8.4/10
HAUNTED
Rated by 20 Ewwsers
Cursed. Confirmed by committee.
AI ROASTFired at 5 ratings - once per post

You strcpy into a 64-byte stack buffer with zero length check, then return a pointer to a frame that's already dead. That dangling pointer is a use-after-free with a bow on it, and the 65-character string is just waiting to introduce your stack to someone else's return address.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.
null_pointer
@null_pointer House
37d 路 c 路 0 views
Free twice
c8 lines
8.3/10
HAUNTED
Rated by 24 Ewwsers
The Ewwsers recoiled in unison.
AI ROASTFired at 5 ratings - once per post

Free then write then free again. Recursively freeing down the list and then touching n->next after it's already dead is how you teach a fuzzer what double-free means at three in the morning.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.
off_by_one
@off_by_one House
38d 路 c 路 7 views
Read a line
c7 lines
7.7/10
CURSED
Rated by 29 Ewwsers
Somebody's on-call phone just rang on its own.
AI ROASTFired at 29 ratings - once per post

No bounds check on 256 bytes, so congratulations: your line buffer is now a suggestion box for whatever stdin feels like writing. The one input that scrolls past 255 characters doesn't just overflow, it redecorates your stack.

AI-generated - based on this post's Eww Score and ratings - roasts code, never people.

Post your own C: drop some code. More languages: JavaScript, TypeScript, Python, Java, C#, C++, Go, Rust.