Skip to content
Snippets Groups Projects
  1. Sep 26, 2019
  2. Sep 25, 2019
    • Simon McVittie's avatar
      Merge branch 'wip/smcv/enumerate-icds' into 'master' · 66ddcf52
      Simon McVittie authored
      graphics: Add EGL and Vulkan ICD enumeration
      
      See merge request steam/steam-runtime-tools!56
      66ddcf52
    • Simon McVittie's avatar
      Update changelog · c31cb3cf
      Simon McVittie authored
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      c31cb3cf
    • Simon McVittie's avatar
      Distinguish between the Steam installation (root) and data paths · 41ac7a82
      Simon McVittie authored
      
      Until now we've been conflating these two, but Timothee Besset recently
      clarified their status for me.
      
      ~/.steam/steam is maintained by bin_steam.sh, aka /usr/bin/steam,
      in which it is referred to as STEAMDATALINK. It is the data directory
      containing user data (cloud-synced configuration and saves), the
      download cache, and the default Steam Library directory.
      
      ~/.steam/root is maintained by steam.sh, in which it is referred to as
      STEAMROOTLINK. It is the installation directory, containing Steam
      executables and libraries.
      
      As a result, they are normally the same, but can differ, in particular
      in two situations:
      
      * When testing a new Steam client build by running client/steam.sh,
        client/ gets used as the installation directory, in conjunction with
        the existing data directory pointed to by ~/.steam/steam. This avoids
        having to re-login or re-download your library of games for the new
        test installation.
      
      * When Debian bug #916303 was present during the initial Steam
        installation, the Steam client was unpacked into ~/.steam, resulting
        in creation of ~/.steam/steam as a real directory that cannot be
        replaced with a symbolic link. We effectively ended up using
        ~/.steam as the installation path, but with ~/.steam/steam as the
        data path. (The Debian steam package has since been fixed, but we
        cannot easily disentangle existing installations.)
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      41ac7a82
  3. Sep 24, 2019
  4. Sep 20, 2019
    • Simon McVittie's avatar
      Assert we are not setuid before looking at the environment · f32aa5c5
      Simon McVittie authored
      
      While reviewing !56, Emil pointed out that real
      ICD loaders normally use secure_getenv(), which ignores environment
      variables if it detects that the process is running with elevated
      privileges, whereas we are using the GLib equivalent of plain getenv().
      
      This library is not designed to be used in a privileged process, never
      mind a setuid one: it trusts various aspects of its execution environment,
      and it executes subprocesses that will have similar behaviour. As such,
      I'm treating "we are not setuid" as a precondition check rather than as
      a normal situation, and considering execution of this library in a setuid
      context to be a programming error.
      
      setuid/setgid/setcap executables inherit their execution environment
      (environment variables, current working directory, file descriptors,
      controlling terminal, process group and other inheritable state) from a
      less-privileged and potentially hostile caller, so they are a privilege
      boundary, and can only safely use libraries if those libraries are also
      specifically designed to distrust their caller.
      
      The name of the function only contains "setuid" for brevity, but in fact
      it checks for all aspects of elevated privileges, including setgid and
      setcap: the AT_SECURE auxiliary value is the same one used by
      secure_getenv(). The fallback implementation used if getauxval() fails
      only checks for setuid and setgid.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      f32aa5c5
    • Simon McVittie's avatar
    • Simon McVittie's avatar
      Add some missing precondition checks · 74927afe
      Simon McVittie authored
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      74927afe
  5. Sep 19, 2019
  6. Sep 17, 2019
  7. Sep 16, 2019
  8. Sep 12, 2019
  9. Sep 11, 2019
  10. Sep 10, 2019
  11. Sep 09, 2019
  12. Sep 06, 2019
Loading