AspireMint reports: Comma in petz nametag displays ... #6038

Open
opened 2024-01-21 18:25:40 +00:00 by yourland-report · 7 comments

AspireMint reports a bug:

Comma in petz nametag displays as "/,"

Player position:

{
	x = 1981.0631103516,
	y = 18,
	z = 1172.3000488281
}

Player look:

{
	x = 0.00594487413764,
	y = -0.32358711957932,
	z = 0.94617974758148
}

Player information:

{
	protocol_version = 42,
	minor = 7,
	lang_code = "",
	state = "Active",
	version_string = "5.7.0",
	formspec_version = 6,
	max_rtt = 1.4010000228882,
	major = 5,
	ip_version = 6,
	min_rtt = 0.025000000372529,
	avg_rtt = 0.026000000536442,
	min_jitter = 0,
	max_jitter = 0.46099999547005,
	avg_jitter = 0.0010000001639128,
	connection_uptime = 5472,
	serialization_version = 29,
	patch = 0
}

Player meta:

{
	fields = {
		punch_count = "529623",
		["3d_armor_inventory"] = "return {\"3d_armor:boots_crystal 1 16200\", \"shields:shield_nether 1 32400\", \"3d_armor:chestplate_nether 1 32400\", \"3d_armor:leggings_nether 1 32400\", \"3d_armor:helmet_nether 1 16200\", \"\"}",
		inflicted_damage = "11469762",
		arenalib_infobox_arenaID = "0",
		["stamina:level"] = "15",
		yl_commons_thankyou = "249",
		yl_commons_player_joined = "1705856136",
		["signslib:pos"] = "(2923,-193,349)",
		yl_commons_player_created = "1619715757",
		yl_church = "return {[\"last_death_portal\"] = 1705832604, [\"last_heal\"] = 1705833044, [\"last_death\"] = {[\"x\"] = 1923, [\"y\"] = 39, [\"z\"] = 1361}}",
		played_time = "6255054",
		digged_nodes = "1948547",
		placed_nodes = "383155",
		died = "358",
		crafted = "113064",
		hud_state = "on",
		["stamina:exhaustion"] = "122.5",
		partychat = "party",
		xp = "2058450",
		jointime = "1619715757",
		bitten = "0",
		["unified_inventory:bags"] = "return {\"unified_inventory:bag_large\", \"unified_inventory:bag_large\", \"unified_inventory:bag_large\", \"water_life:croc_bag\"}",
		repellant = "0",
		["ocean_build.last_warning"] = "1.65674e+09",
		["ocean_build.forbidden"] = "true",
		["ocean_build.ocean_built"] = "12",
		["stamina:poisoned"] = "no"
	}
}

Log identifier


[MOD] yl_report log identifier = Mw10EeNzy7xMkz3rzgICdGCl7Hx3JLqi

Profiler save:

profile-20240121T182539.json_prettyEE

Status:

# Server: version: 5.7.0-yl-thx-tmm | game: Minetest Game | uptime: 4d 3h 6min 18s | max lag: 1.3s | clients (33/52): ait0r7, AliasAlreadyTaken, Arsten, AspireMint, Bailiff, Beginner, betzi, Bingo, Boot, BunBun__, daydream, Deathwing, FailFactory, flux, Harlequin, hlqkj, JinnyC, Keya, Lili__, Mikiangel, Murmel, Naan, Noii, Ofra, poppyasdan, prowler, pups, Service, tagtraum, taonza12, thatchristianguy, VK, whosit

Teleport command:

/teleport xyz 1981 18 1172

Compass command:

/give_compass Construction Mw10EeNzy7xMkz3rzgICdGCl7Hx3JLqi D2691E 1981 18 1172
AspireMint reports a bug: > Comma in petz nametag displays as "/," Player position: ``` { x = 1981.0631103516, y = 18, z = 1172.3000488281 } ``` Player look: ``` { x = 0.00594487413764, y = -0.32358711957932, z = 0.94617974758148 } ``` Player information: ``` { protocol_version = 42, minor = 7, lang_code = "", state = "Active", version_string = "5.7.0", formspec_version = 6, max_rtt = 1.4010000228882, major = 5, ip_version = 6, min_rtt = 0.025000000372529, avg_rtt = 0.026000000536442, min_jitter = 0, max_jitter = 0.46099999547005, avg_jitter = 0.0010000001639128, connection_uptime = 5472, serialization_version = 29, patch = 0 } ``` Player meta: ``` { fields = { punch_count = "529623", ["3d_armor_inventory"] = "return {\"3d_armor:boots_crystal 1 16200\", \"shields:shield_nether 1 32400\", \"3d_armor:chestplate_nether 1 32400\", \"3d_armor:leggings_nether 1 32400\", \"3d_armor:helmet_nether 1 16200\", \"\"}", inflicted_damage = "11469762", arenalib_infobox_arenaID = "0", ["stamina:level"] = "15", yl_commons_thankyou = "249", yl_commons_player_joined = "1705856136", ["signslib:pos"] = "(2923,-193,349)", yl_commons_player_created = "1619715757", yl_church = "return {[\"last_death_portal\"] = 1705832604, [\"last_heal\"] = 1705833044, [\"last_death\"] = {[\"x\"] = 1923, [\"y\"] = 39, [\"z\"] = 1361}}", played_time = "6255054", digged_nodes = "1948547", placed_nodes = "383155", died = "358", crafted = "113064", hud_state = "on", ["stamina:exhaustion"] = "122.5", partychat = "party", xp = "2058450", jointime = "1619715757", bitten = "0", ["unified_inventory:bags"] = "return {\"unified_inventory:bag_large\", \"unified_inventory:bag_large\", \"unified_inventory:bag_large\", \"water_life:croc_bag\"}", repellant = "0", ["ocean_build.last_warning"] = "1.65674e+09", ["ocean_build.forbidden"] = "true", ["ocean_build.ocean_built"] = "12", ["stamina:poisoned"] = "no" } } ``` Log identifier ``` [MOD] yl_report log identifier = Mw10EeNzy7xMkz3rzgICdGCl7Hx3JLqi ``` Profiler save: ``` profile-20240121T182539.json_prettyEE ``` Status: ``` # Server: version: 5.7.0-yl-thx-tmm | game: Minetest Game | uptime: 4d 3h 6min 18s | max lag: 1.3s | clients (33/52): ait0r7, AliasAlreadyTaken, Arsten, AspireMint, Bailiff, Beginner, betzi, Bingo, Boot, BunBun__, daydream, Deathwing, FailFactory, flux, Harlequin, hlqkj, JinnyC, Keya, Lili__, Mikiangel, Murmel, Naan, Noii, Ofra, poppyasdan, prowler, pups, Service, tagtraum, taonza12, thatchristianguy, VK, whosit ``` Teleport command: ``` /teleport xyz 1981 18 1172 ``` Compass command: ``` /give_compass Construction Mw10EeNzy7xMkz3rzgICdGCl7Hx3JLqi D2691E 1981 18 1172 ```
AliasAlreadyTaken was assigned by yourland-report 2024-01-21 18:25:40 +00:00
AliasAlreadyTaken added the
1. kind/bug
3. source/mod upstream
labels 2024-01-21 20:11:23 +00:00

That's bc. petz formspec-escapes tags before storing them...
(which is actually a good idea bc. it saves them a lot of work when creating all kinds of formspecs)

That's bc. petz formspec-escapes tags before storing them... (which is actually a good idea bc. it saves them a lot of work when creating all kinds of formspecs)
flux added the
ugh/petz
label 2024-01-23 04:28:06 +00:00
Member

the solution is to mark specific variables as being user-supplied. late 90s perl had a great library for ensuring that (taint), we lua users aren't afforded such luxuries.

the solution is to mark specific variables as being user-supplied. late 90s perl had a great library for ensuring that (taint), we lua users aren't afforded such luxuries.

the solution is to mark specific variables as being user-supplied.

Is that actually a feature or is that a wish that may never come true?

> the solution is to mark specific variables as being user-supplied. Is that actually a feature or is that a wish that may never come true?
Member

the solution is to mark specific variables as being user-supplied.

Is that actually a feature or is that a wish that may never come true?

it's almost impossible without some custom modifications to the lua interpreter, so basically a wish that will never come.

> > the solution is to mark specific variables as being user-supplied. > > Is that actually a feature or is that a wish that may never come true? it's almost impossible without some custom modifications to the lua interpreter, so basically a wish that will never come.
Member

You could technically wrap all relative functions (like minetest.show_formspec) to take only special type of objects instead of strings - like a Formspec object, and make it so that Formspec always escapes strings passed to it...

UPD *relative -> relevant, had a brain fart

You could technically wrap all relative functions (like `minetest.show_formspec`) to take only special type of objects instead of strings - like a `Formspec` object, and make it so that `Formspec` always escapes strings passed to it... UPD *relative -> relevant, had a brain fart

You could technically wrap all relative functions (like minetest.show_formspec) to take only special type of objects instead of strings - like a Formspec object, and make it so that Formspec always escapes strings passed to it...

Isn't that what MT is supposed to do or at least minetest.formspec_escape is supposed to do?

> You could technically wrap all relative functions (like `minetest.show_formspec`) to take only special type of objects instead of strings - like a `Formspec` object, and make it so that `Formspec` always escapes strings passed to it... Isn't that what MT is supposed to do or at least minetest.formspec_escape is supposed to do?
Member

minetest.formspec_escape

that's the function to fix things sometimes, but it certainly can't fix everything. the goal of perl taint wasn't to make it impossible to make mistakes, but rather to force coders to consider how a value might be used minimally, and make it an error to show no consideration whatsover.

a lot of minetest mods were made as someone's first coding project, haven't been worked on in 5 years, and are still heavily used. i'd love it if some minimal standards were enforced, to improve the baseline code quality.

but this is all fanciful thinking, i don't think such a proposal would ever get accepted into the minetest engine, as it would break so many things.

i am not giving on on minetest at all, i'm just lamenting what it could be in an alternate universe.

> minetest.formspec_escape that's the function to fix things sometimes, but it certainly can't fix everything. the goal of perl taint wasn't to make it impossible to make mistakes, but rather to force coders to consider how a value might be used *minimally*, and make it an error to show no consideration whatsover. a lot of minetest mods were made as someone's first coding project, haven't been worked on in 5 years, and are still heavily used. i'd love it if some minimal standards were enforced, to improve the baseline code quality. but this is all fanciful thinking, i don't think such a proposal would ever get accepted into the minetest engine, as it would break so many things. i am not giving on on minetest at all, i'm just lamenting what it could be in an alternate universe.
Sign in to join this conversation.
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: your-land/bugtracker#6038
No description provided.