Open oliwer opened 1 month ago
I don't have access to Linux x86_64 right now, but on FreeBSD x86_64, the symptom is:
$ arch/freebsd13.i386-64/bin/ksh -c 'echo $((-2**63/-1))'
Floating exception(coredump)
Yes, looks like a workaround similar to the one that fixed #770 might work — though the real problem here is #771, which is not getting fixed anytime soon I'm afraid :(
Using
Korn Shell Version AJM 93u+m/1.0.8 2024-01-01
on Linux amd64, the following command causes ksh to run into an infinite loop. I had tokill -9
it:I ran a quick gdb, and it seems this line is the culprit: https://github.com/ksh93/ksh/blob/7170ac01c4f4603586661761ba685d2d3c2d69bc/src/cmd/ksh93/sh/streval.c#L359
The variable
sp[-1]
holds a negative long double (-9223372036854775808) which we are casting to an unsigned long. Looks like a similar issue to https://github.com/ksh93/ksh/issues/770