https://bugs.winehq.org/show_bug.cgi?id=56744
Bug ID: 56744 Summary: Serial number in smbios system table is not filled on Linux in practice Product: Wine Version: 9.9 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: ntdll Assignee: wine-bugs@winehq.org Reporter: bunglehead@gmail.com Distribution: ---
Currently we fill this string from "/sys/class/dmi/id/product_serial" file, which is not always readable by a regular user. I've seen it mentioned on some bug reports that are years old, so I don't think it's some recent kernel change.
https://bugs.winehq.org/show_bug.cgi?id=56744
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |source
--- Comment #1 from Ken Sharp imwellcushtymelike@gmail.com --- Access denied here on Ubuntu 22.04.
https://bugs.winehq.org/show_bug.cgi?id=56744
--- Comment #2 from Hans Leidekker hans@meelstraat.net --- Is there an app that fails because of this? We use this value to set Win32_ComputerSystemProduct.IdentifyingNumber and querying that property on a Qemu VM returns an empty string. On real hardware it returns "System Serial Number".
https://bugs.winehq.org/show_bug.cgi?id=56744
--- Comment #3 from Nikolay Sivov bunglehead@gmail.com --- Yes, there is one that I can't share. The problem there is that string is accessed without checking of offset is zero. It obviously is not going to work anywhere if this field is missing.
But that's not the point, I reported this because we have this code that looks like it should be working, but sysfs configuration prevents it. It behaves the same on Fedora and Debian kernels, so we might as well simply set it to 0, or to something static.
https://bugs.winehq.org/show_bug.cgi?id=56744
--- Comment #4 from Hans Leidekker hans@meelstraat.net --- I'm fine with returning a static string.
https://bugs.winehq.org/show_bug.cgi?id=56744
Eric Pouech eric.pouech@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |eric.pouech@gmail.com
--- Comment #5 from Eric Pouech eric.pouech@gmail.com --- for the record: - there's https://gitlab.winehq.org/wine/wine/-/merge_requests/4773 that should address it - there are also some games (at least one) which derive a user id from this kind of information, and having a static string ends up with all users sharing the same account (yes, game implementation is to blame, but here it is)
https://bugs.winehq.org/show_bug.cgi?id=56744
--- Comment #6 from Hans Leidekker hans@meelstraat.net --- (In reply to Eric Pouech from comment #5)
for the record:
should address it
- there are also some games (at least one) which derive a user id from this
kind of information, and having a static string ends up with all users sharing the same account (yes, game implementation is to blame, but here it is)
My tests show that Windows returns the string "System Serial Number" in the SMBIOS system section on real hardware. I suspect it was anonymized at some point, probably for the same reason Linux made it readable only by root.
https://bugs.winehq.org/show_bug.cgi?id=56744
--- Comment #7 from Eric Pouech eric.pouech@gmail.com --- Rechecked on real hardware (windows 10) from kernel32.GetSystemFirmwareTable() output and I do get IDs for: - system info / serial number - system info / SKU number - base board / serial number - system enclosure / serial number (same as system info) (AMI BIOS)
So not sure it's anonymized by Windows, but maybe you get what the BIOS exposes? A bit of googling shows that's what some manufacturers do ([1]).
[1] https://community.spiceworks.com/t/wmic-bios-get-serialnumber-only-returns-s...
https://bugs.winehq.org/show_bug.cgi?id=56744
--- Comment #8 from Hans Leidekker hans@meelstraat.net --- (In reply to Eric Pouech from comment #7)
Rechecked on real hardware (windows 10) from kernel32.GetSystemFirmwareTable() output and I do get IDs for:
- system info / serial number
- system info / SKU number
- base board / serial number
- system enclosure / serial number (same as system info)
(AMI BIOS)
So not sure it's anonymized by Windows, but maybe you get what the BIOS exposes? A bit of googling shows that's what some manufacturers do ([1]).
[1] https://community.spiceworks.com/t/wmic-bios-get-serialnumber-only-returns- system-serial-number-whitebox/243177
Yes, it's probably the BIOS manufacturer who does that, but it shows that apps can't rely on getting a unique string from this field on Windows. One scheme that I remember collected a number of different IDs and then computed a hash over them, which may still yield a unique ID.
https://bugs.winehq.org/show_bug.cgi?id=56744
Hans Leidekker hans@meelstraat.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |e39a973778198c638c5062d4e2e | |436bfa24a13c0 Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #9 from Hans Leidekker hans@meelstraat.net --- Fixed with e39a973778198c638c5062d4e2e436bfa24a13c0.
https://bugs.winehq.org/show_bug.cgi?id=56744
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #10 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 9.11.