Random Chitchat 2017
@xoft I have created 3 issues of crashes in the api, that I found with my plugin APIFuzzing.
Is the issue format okay for everyone? If the format is okay, then I will add more in the next time.
Thanks given by:
Yes, those are great, keep them coming. We need to fix all these, there's nothing worse than an unstable API.
Thanks given by:
@Seadragon91 could you fuzzy the cBlockArea API? I have a feeling you'll get allot of crashes there.
Thanks given by:
@NiLSPACE I excluded cBlockArea from fuzzing, because there is already a known problem.
Code:
local area = cBlockArea()
area:Create(10, 10, 10)
for i = 10, 1000 do
area:SetBlockType(i, i, i, 1)
end
This writes out of bounds and will corrupt memory. It can cause a crash directly or after a few tries.
The solution would be to check the passing params, but that would have a huge impact on performance.
Thanks given by:
I don't really know how to approach this. If we add coord checks into the API, we will impose a penalty on everyone. If we don't, it's possible to crash the server, but well-formed plugins run faster. Which one is better?

Or perhaps we could do something in the middle - check in Debug builds (so that plugin authors get proper error messages) , don't check in Release builds, so that we get better perf.
Thanks given by:
Depends on how much performance we'll lose. Have there been any tests?
Thanks given by:
Not really. That's the most sensible course of action, of course - write some.
Thanks given by:
I just tried BabeLua for fun, and surprisingly it worked perfectly with Cuberite. All I had to do is tell it where the executable was and it just worked, including the debugger. Sadly it requires project files to be made and there doesn't seem to be a way to make it know the Cuberite API.
Thanks given by:
Wanted to test it. Error: Not for visual studio community edition  Sad
Thanks given by:
That's strange, I wouldn't think it would be depended on the type of Visual Studio you have. It does depend on the version of VS though. Are you sure you're not just getting the wrong version? There is a download for 2012, 2013 and 2015.
Thanks given by: Seadragon91




Users browsing this thread: 5 Guest(s)