protonscr

Opening very long URLs breaks communication via ~/.steam/steam.pipe

steamclosed
ValveSoftware/steam-for-linux#10107 · opened 2023-10-02 by smcv · updated 2023-10-02 · 1 comments · github
Ssmcv 2023-10-02 github

Your system information

  • Steam client version (build number or date): beta 1695679261
  • Distribution (e.g. Ubuntu): Arch, updated 2023-10-02
  • Opted into Steam client beta?: yes
  • Have you checked for system updates?: yes
  • Steam Logs:
  • GPU: Nvidia

Please describe your issue in as much detail as possible:

In games that run under one of the Steam Linux Runtime container-based compatibility tools (CS2, Dota 2 or any modern version of Proton), the container's xdg-open command is a Steam-specific thing (steam-runtime-urlopen internally) which communicates URLs to Steam by doing the equivalent of:

echo "steam steam://openurl/http://example.com" > ~/.steam/steam.pipe

If I write a very long URL into ~/.steam/steam.pipe, this mechanism stops working.

Steps for reproducing this issue:

  1. echo "steam steam://openurl/http://example.com" > ~/.steam/steam.pipe. It works; the URL is opened in my default browser.
  2. echo "steam steam://openurl/http://example.com/$(perl -e 'print ("a" x 4097)."\n"')" > ~/.steam.pipe. Nothing happens.
  3. Repeat the same command as in step 1. Nothing happens.

A less direct way of achieving the same result would be to run xdg-open three times from a containerized game, or the debug shell that can be opened by running a containerized game with PRESSURE_VESSEL_SHELL=instead in the environment, passing http://example.com the first time a very long URL the second time, and then http://example.com again the third time.

Expected result

  1. The URL opens in my default browser.
  2. The very long URL opens in my default browser (in practice, it will be a 404 error).
  3. The URL opens in my default browser.

Actual result

  1. As expected. ~/.steam/root/logs/console_log.txt says ExecCommandLine: "steam steam://openurl/http://example.com".
  2. Nothing happens. A new ExecCommandLine does not appear in the log.
  3. Same as 2.
Kkisak-valve maintainer 2023-10-02 github

Hello @smcv, this issue is already being tracked at #5753. Closing in favor of the older issue report.

Nothing extracted yet.