Back to News
Advertisement
Advertisement

⚡ Community Insights

Discussion Sentiment

38% Positive

Analyzed from 1074 words in the discussion.

Trending Topics

#llms#code#bugs#bug#more#git#should#own#zero#finding

Discussion (55 Comments)Read Original on HackerNews

dabinatabout 3 hours ago
It’s interesting how AI may both raise and lower the quality of software. It’s very easy to send an AI agent on an open-ended bug hunt, and if it wastes a bunch of time and effort and finds nothing, no big deal. Time is much more important for a human developer with a salary.
dmixabout 2 hours ago
Finding the bugs with LLMs is easy. Reviewing the output, cleaning it up, and making sure it doesn't break something else is the hard part.
black_knight7 minutes ago
This is where I believe strong typing (like, Haskell-strong or stronger) and functional programming in general will be a win. The confidence I have that my fixes are localised when fixing Haskell code is infinitely stronger than fixing even Java, not speak about C, code.
nonethewiserabout 1 hour ago
No one can keep up with the volume of code AI produces.

We wont stop using AI.

We will use AI to check AI.

Of course this is crazy, but it will also unlock pretty insane scaling and productivity and ultimately we will manage it on either end via requirements and tests.

harambae41 minutes ago
It's mostly (not entirely, but mostly) finding security issues in old human-written code. It'll eventually start running out of those.

From that standpoint, it's not a crazy setup security-wise. Maybe still crazy for development.

kronaabout 1 hour ago
You're suggesting that LLMs get better at fixing bugs/vulnerabilities, but at the same time stop getting better at finding them? What if this difference is inherent and essential?
hombre_fatalabout 1 hour ago
The missing part of this is that verifying the bug with LLMs is also easy, and so is adversarially reviewing the proposed fix with LLMs.

The only thing left for you to do should be directional decisions. The LLMs should pause and rope you in if the fix involves directional/invariant changes.

evenhashabout 2 hours ago
> It’s very easy to send an AI agent on an open-ended bug hunt, and if it wastes a bunch of time and effort and finds nothing, no big deal.

No big deal? It’s not like it’s free… tokens cost money.

rogerrogerr42 minutes ago
Often rounds to free compared to human costs.
Supermanchoabout 3 hours ago
I don't care if you call it an over-engineered looping machine or what, there are concrete benefits to using LLMs for this. They work faster than developing your own looping algorithm and more often produce useful results than not.
saghm20 minutes ago
It's not even like fuzzers are valuable because of the process they use specifically either; the value is that they produce a concrete input that you can use as a reproducible test case at that point. The value could be produced by gazing into a crystal ball for all I care, as long as I can use what it gives me to reproduce a bug.
shevy-javaabout 2 hours ago
I dislike AI, but if AI finds real bugs then this is in my opinion objectively a positive thing. Of course the question is what constitutes a real bug.
hn_submit43 minutes ago
A.I. is useful for this. But it would be even more useful if all new code were written in Rust or some other memory-safe language.

A.I. could also be used to port C/C++ codebases to Rust, which isn't economically feasible at the moment.

senderista38 minutes ago
AI will have plenty of security bugs left to find in Rust codebases.
Spivak17 minutes ago
I mean I get the sentiment but Rust won't save you against division by zero, it'll just panic at runtime like every other language.
pixl97about 2 hours ago
Unfiltered models will help build exploits for the bugs they find, so there is some means of measuring their efficacy.
klipt39 minutes ago
If you're just talking about security bugs.

There are also non security bugs that don't have exploits but just make the user experience worse.

eviksabout 2 hours ago
But what's your expectation of the net?
ks2048about 2 hours ago
No doubt fuzzers (vibecoded or otherwise) can be powerful, but can't you just mark all "/" as potential divide by zero errors?

I guess sometimes developers think they "know" some variable won't be zero, but unless it checked explicitly or by the compiler, that shouldn't be trusted.

Someoneabout 1 hour ago
> but can't you just mark all "/" as potential divide by zero errors?

If you’re accepting large false positives rates: yes.

If you want users to take your warnings serious: no.

(Nitpick: you certainly don’t want to flag _all_ of them. Divisions by non-zero constants definitely should be excluded, for example (integer division by -1 can lead to overflow, but that would be a different warning))

saghmabout 1 hour ago
Fuzzers find inputs, not just "potential" errors that aren't triggerable.
doogliusabout 1 hour ago
What are you suggesting and how would it be different than how SIGFPE already works?
wvbdmpabout 1 hour ago
I mean there could be a guard clause? But yeah, seems like this could be statically evaluated like how some IDEs see a null check and don’t complain about nullability within the same scope.
cpriest13 minutes ago
Nice find. The interesting part isn't "AI wrote the fuzzer." It's that a cheap random harness still hits classical bugs in ancient parsers. Keep the corpus; throw away the hype.
robertlagrantabout 1 hour ago
What we need is a numeric type that cannot be zero.
duped6 minutes ago
For stuff like niche value optimization sure. For practical arithmetic code, nah. Like with this bug, all that changed is that garbage data in gives the user an error that they tried to process garbage data. Adding a new type doesn't make the code better, it just moves the error around. And you really don't want an infix division operator to fail to type check if the right hand side isn't a nonzero type, do you?
winwang32 minutes ago
Every day, we stray closer to Haskell. Dare I say it: good!
drdaemanabout 1 hour ago
What we need are refinement types, where there’s a base type and a predicate. F* has this:

     val (/) : int -> (divisor:int { divisor <> 0 }) -> int
yeputons39 minutes ago
And also cannot be INT_MIN, otherwise -1 / INT_MIN is undefined behaviour(!) in C and C++.
rhdunnabout 1 hour ago
It would be more flexible for a compiler to reuse the range analysis logic used in optimizations for statically verifiable divide by zeros. That way you could extend it to other things like statically verifiable overflows.
souvlakee30 minutes ago
It is interesting that FFmpeg has its own Git server. Maybe we should move there too?
snailmailman17 minutes ago
Lots of projects run their own git or forgejo or similar. I run my own private forge, and it has a higher uptime than GitHub. (A shockingly low bar, tbh)

It’s surprisingly simple to setup, and the hardware requirements are pretty small for a private or small forge, as it’s usually a relatively small number of users/repos/etc.

TacticalCoder20 minutes ago
> It is interesting that FFmpeg has its own Git server. Maybe we should move there too?

Git is a DVCS. I know many people only ever used Git through Github and forgot what the 'D' in DVCS means but whether or not they remember what the 'D' stands for, running your own Git server is trivial. Especially in this day and age of LLMs were you can just ask: "Clone this repo and convert it to base Git repo and serve it on the LAN PLZ KTHX".

The result is going to be more stable than Github and, arguably, more secure too.

12j3afAvabout 2 hours ago
Generating an incorrect input file seems to be the easiest task of all for any fuzzer.

Generating correct input to get deep into the call stack and then finding something is the hard part.

Suracabout 2 hours ago
send patches
rs_rs_rs_rs_rsabout 2 hours ago
...they did.
ligarotaabout 1 hour ago
Where?

They only suggested a basic guard, chich can be useless if this case never happens

VCFundedGenYerabout 2 hours ago
The fruits of using LLMs to code. You'll waste far more time finding what it quietly and subtly wrecked than you would have if you just coded it yourself.
jaggederestabout 2 hours ago
Those sneaky LLMs going 7 years into the past and committing as a human:

https://code.ffmpeg.org/FFmpeg/FFmpeg/commit/8eda3c7f91e1a5b...

wiseowiseabout 2 hours ago
It’s obviously Claude 69 with time travel functionality, that’s too dangerous to release to public. They’re working on space-time limiting sandbox to prevent these issues.
six_sevenabout 1 hour ago
Its all fun and games until the Claude-who-remains hunts you down
jaggederest40 minutes ago
Just remember kids, never immanentize the eschaton.
vegnusabout 2 hours ago
You're not reading it right. The bug was found using a vibecoded fuzzer.
12j3afAvabout 2 hours ago
I wonder from where Claude stole this fuzzer.
criddell4 minutes ago
[delayed]
pjankiewiczabout 2 hours ago
Or it used something called an "analogy" which is a valid way to solve new problems.
whatsThisBtn411 minutes ago
But guys... AI is bad. It might have done good stuff today, but we should be anti data. The Chinese propagandists on United States social media told me to.