summaryrefslogtreecommitdiffstats
path: root/results/scraper/fex/570
blob: 18aa2a430d5eeafd73e8de07bf2464d84d3dbc30 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/bin/sh execution failing - Breaks Evoland Legendary Edition launching
### Preface
https://store.steampowered.com/app/1020470/Evoland_Legendary_Edition/
https://steamdb.info/app/1020470/
This game's launch command is `linux/run.sh`

This is fairly innocuous until you inspect what is inside that file

```
LD_PRELOAD= LD_LIBRARY_PATH=linux ./linux/hl linux/detect.hl
LD_PRELOAD= LD_LIBRARY_PATH=linux ./linux/hl sdlboot.dat
```
It has no interpreter line in the header which means if you try launching the game with `FEXLoader %command%` in the launch arguments of Steam. FEXLoader will try parsing the file, realize it isn't an ELF or `#!` shebang interpreter file and crash out.

This happens to work on Linux because steam launches all games with `sh -c %command%`.

Looks like we are going to have to switch over to `FEXInterpreter /bin/sh -c %command%` instead now. With /bin/sh coming from our rootfs overlay.

### Problem
Somewhere along the line we managed to break launching applications from /bin/sh, or behaviour has changed enough on my host system that this isn't working anymore.
Easy enough to reproduce by running /bin/sh under FEX and trying to ls a directory.
The process will fork and spin on some ioctls and signals around switching process foreground/background switching.
Good chance that signals are causing issues here.