protonscr

Segfault on start in `MachineIDInfoTh'

steamopen reviewed
ValveSoftware/steam-for-linux#4667 · opened 2016-10-16 by jokleinn · updated 2016-10-16 · 0 comments · github
Jjokleinn 2016-10-16 github

Your system information

  • Steam client version: Latest base client (2016-10-15, last update 2016-09-23?)
  • Distribution (e.g. Ubuntu): Gentoo-hardened ~amd64
  • Opted into Steam client beta?: No
  • Have you checked for system updates?: Yes

Please describe your issue in as much detail as possible:

Attempting to launch the newer steam client versions (including the beta, but not limited to the beta) results in a segfault for me. This segfault is independent of STEAM_RUNTIME value, isn't apparently debuggable with LD_DEBUG (ruling out a lib search issue) and seems to occur in libc.so, meaning it is /very/ likely to be a bug with memory management or NULL values (I am on a hardened/grsec kernel). It may possibly be due to the 'device node not found' spam considering the segfault is in the thread that appears to investigate machine information, but overall a segfault in libc.so.6 is seldom an issue on glibc's side, so I'm assuming the "#0 0xda6c3adc in readdir () from /lib32/libc.so.6" is likely to be an indicator that readdir is passed a null pointer or the like.

Assistance with a) figuring out how to get steam to correctly determine what must be opendir()'d so that readdir() doesn't get a null pointer, or b) adding a codepath to check the value being passed to readdir() for a NULL value would be nice.

bt
clipped strace -- I can't quite figure out what it's trying to open here that it can't, gets NULL, and then shoves blindly into readdir()

Addendum

It tries to read /proc/net/route and is denied because of grsec -- it simply needs to check for NULL if it's denied here.

Steps for reproducing this issue:

There isn't really a method to reproduce something like this.

Nothing extracted yet.