Prometheus icon indicating copy to clipboard operation
Prometheus copied to clipboard

[BUG] Parenthesis-enclosed expressions aren't truncated to 1 value

Open 9382 opened this issue 2 years ago • 3 comments

Describe the bug The obfuscator doesn't support truncating the output of a function or ... using parenthesis (())

Expected behavior The amount of values to be truncated (or raised with a nil in the case of no output) to 1 argument - See lua 5.1 documentation §2.5

To Reproduce Here's a function which displays this behaviour - the output will be different between the obfuscated script and the original code

local function x()
	return 3, 4, 5
end
print("Expecting '3, 4, 5' and then just '3'")
print(x())
print((x()))

9382 avatar Nov 15 '23 13:11 9382

I tried to replicate the bug and the obfuscated script produces the same output. I think you should change your preset.

Zaenalos avatar Nov 16 '23 02:11 Zaenalos

I just attempted it on purely the "Minify" preset (so no obfuscation at all) and it produced the following code:

local function p()return 3,4,5 end
print("\069\120\112\101\099\116\101\100 \'\051\044 \052\044 \053\' \097\110\100 \116\104\101\110 \106\117\115\116 \'\051\'")
print(p())
print(p())

(I manually added the newlines) As you can see, the last line has had the extra parenthesis stripped, which means the truncation no longer takes place, and both prints now become identical (they should not be identical). Are you sure you can't replicate this bug?

9382 avatar Nov 16 '23 06:11 9382

I will look into this this weekend. I didn't consider this case

levno-710 avatar Dec 14 '23 15:12 levno-710