Luanti logo

IRC log for #luanti-dev, 2025-10-01

| Channels | #luanti-dev index | Today | | Google Search | Plaintext

All times shown according to UTC.

Time Nick Message
00:08 Sompi joined #luanti-dev
01:05 Eragon joined #luanti-dev
02:32 aliasreadytaken joined #luanti-dev
04:00 MTDiscord joined #luanti-dev
04:56 fluxionary joined #luanti-dev
06:46 mrcheese joined #luanti-dev
08:46 Warr1024 joined #luanti-dev
10:08 ivanbu joined #luanti-dev
10:40 sfan5 merging #16530, #16506 soon
10:40 ShadowBot https://github.com/luanti-org/luanti/issues/16530 -- Fix a memory leak: Use irr_ptr for bones by appgurueu
10:40 ShadowBot https://github.com/luanti-org/luanti/issues/16506 -- Fix debug.getinfo not being unset in CPCSM by Desour
13:33 pinkuin_basxto joined #luanti-dev
13:57 mrcheese joined #luanti-dev
15:31 SFENCE joined #luanti-dev
15:48 SFENCE joined #luanti-dev
16:21 SFENCE joined #luanti-dev
16:31 Desour joined #luanti-dev
16:53 SFENCE joined #luanti-dev
17:25 SFENCE joined #luanti-dev
17:58 SFENCE joined #luanti-dev
18:07 grorp joined #luanti-dev
18:17 SFENCE joined #luanti-dev
18:41 sfan5 any more thoughts on https://github.com/luanti-org/luanti/pull/16506#issuecomment-3323070923?
18:53 Krock there's definitely some edge-case where this could somehow be abused
18:53 Krock so blacklisting it in builtin for the server would make sense
19:01 jonadab Generally speaking, debug features should be off by default, and (usually) they should only be possible to turn on, for persons with an appropriate level of privilege/responsibility, e.g., the server admin in a server environment.
19:02 jonadab But that's very _general_ and I don't know the implications in this specific case.
19:02 Krock well, it depends. if you're using pcall/xpcall, then some debug tools might still be helpful?
19:03 jonadab It does somewhat depend, yes.  And I should clarify that error messages sent even to abject end users, should be specific or unique enough to allow someone who gets a bug report with the error message in it, to identify the particular source of the message (line of code or whatever).
19:04 jonadab (Not that most users _actually_ give you the actual text of the error message most of the time, but we can dream.)
19:05 jonadab But there's a difference between a good error message, and a feature that lets an end user poke around in the program's internals or whatever.
19:06 turtleman joined #luanti-dev
19:08 MTDiscord <et086> well, many mods use debug.getinfo so its a bad idea to remove it
19:08 jonadab Ah.
19:08 Krock many mods? Do you have a list?
19:08 jonadab My question would be, what do they use it _for_ ?
19:09 jonadab (If mods have to resort to using a debug feature, to get information that they legitimately need, that sounds like an API design flaw.)
19:10 jonadab (Or at least an oversight.)
19:10 MTDiscord <et086> Krock: i don't have a list, but searching locally: fakelib, areas, arena_lib, futil, dbg (but that's expected), worldedit and some of my own mods
19:11 MTDiscord <et086> arena lib has the most intresting use      assert(debug.getinfo(func).nparams <= 4, "[ARENA_LIB] Error! Since arena_lib 7.0, on_end callback can take only up to 3 parameters. "           .. "Check the docs and fix the mod at fault accordingly")
19:12 jonadab areas and worldedit seem important to not break, but they should be actively maintained (one hopes), so if a change is needed, it may be possible to use a reasonable deprecation cycle or something.
19:12 MTDiscord <et086> areas uses it in its areas:registerProtectionCondition, but i dunno what its trying to do there
19:13 jonadab And yeah, a debug mod is obviously a special case here.
19:13 MTDiscord <et086> and also, Why get rid of debug.getinfo?
19:13 jonadab "get rid" is an overstatement; as I understand it, we're talking about making sure it's disabled by default, unless someone turns it on?
19:14 MTDiscord <et086> why?
19:14 grorp left #luanti-dev
19:14 Krock areas uses it for API misuse information. It would be possible to simply not provide the parent function reference
19:16 Krock worst case is some code duplication in C++ if we were to use a modified version of what's already contained in Lua (to implement debug.getinfo)
19:17 jonadab Another random thought:  if some of the info it provides is safe and/or necessary, and other info that it provides is a security risk, could we be more granular about what info it will disgorge by default?
19:28 [MatrxMT] <Zughy> ...a breaking change, great. Of course I'm opposed, since arena_lib is a mod of mine
19:41 SFENCE joined #luanti-dev
19:51 sfan5 nobody is suggesting to remove getinfo
19:52 sfan5 hopefully
19:55 rubenwardy https://content.luanti.org/zipgrep/9e84d971-357e-46ea-89d1-0cf858899fb2/
19:55 rubenwardy ignore the exit 2, means no lua files found
19:57 sfan5 cellestial_game/mods/modlib/debug.lua:local func = debug.getinfo(stacklevel).func
19:57 sfan5 exile-rails/init.lua:            local info = debug.getinfo(level, "f")
19:58 sfan5 ^ definitely sus
19:58 sfan5 dbg/src/dbg.lua:func = debug.getinfo((func or 1) + 1, "f").func <- this too
19:59 sfan5 the rest is probably fine
19:59 MTDiscord <et086> why would it be sus
20:03 MTDiscord <et086> i looked into exile-rails, seems to be written in typescript, so it may be a byproduct of whatever transpiler they were using
20:03 Krock impostors can be sus
20:03 sfan5 "sus" because they're retrieving the very property that would disappear as a security measure
20:04 Krock we could point it to any no-op function
20:04 MTDiscord <et086> oh
20:06 MTDiscord <et086> i think maybe as an extra security make debug.getinfo not be able to get functions of trusted mods, though i dont know if that would actually be a problem (the only issue with getinfo i see is that someone could use it to get access to a local function they arent supposed to, maybe?)
20:07 MTDiscord <et086> but that would require also being deeply aware of another trusted mod
20:07 MTDiscord <et086> so not that big of a deal
20:09 MTDiscord <et086> Krock: probably not a good idea, as that will silently break mods instead of giving you a clear error
20:09 MTDiscord <et086> i think disallowing getting functions of trusted mods is the best solution
20:10 sfan5 that's not the best solution at all, it's unreliable bandaid
20:11 sfan5 also is builtin considered a "trusted mod"? why or why not?
20:11 sfan5 (hint: answer is yes)
20:14 MTDiscord <et086> well, it wouldn't break existing mods/approaches (like using a strange transpiler) and it would most likely make abusing debug.getinfo impossible, in my view it is a good solution
20:15 MTDiscord <et086> and sure maybe debug.getinfo(some_builtin_func, "f") could be disallowed too /shrug
20:16 MTDiscord <et086> (edit: wait no im stupid, i meant debug.getinfo returning a builtin function)
20:31 luatic heh i need to update cellestiall game somewhen, debug.lua is long gone from modlib
20:31 luatic cellestial*
20:32 luatic sfan5: dbg is a debug mod, it is intended to look at upvals of functions among other things, it expects to be trusted to do this
20:43 sfan5 #16533
20:43 ShadowBot https://github.com/luanti-org/luanti/issues/16533 -- Restrict function references returned by debug.getinfo() by sfan5
21:13 SFENCE joined #luanti-dev
22:32 panwolfram joined #luanti-dev
22:40 YuGiOhJCJ joined #luanti-dev
22:42 SFENCE joined #luanti-dev
23:10 turtleman joined #luanti-dev
23:15 SFENCE joined #luanti-dev
23:39 mrcheese_ joined #luanti-dev
23:52 SFENCE joined #luanti-dev

| Channels | #luanti-dev index | Today | | Google Search | Plaintext