Package: thermald
Version: 1.7.0-5
Severity: critical
Tags: patch
Justification: breaks the whole system

Dear Maintainer,

0002-Don-t-keep-on-reading-a-sensor-if-the-temperature-is.patch, added in
1.7.0-5,
introduces a new cthd_sensor data member temp_unreadable but fails to
initialise it.
This causes nondeterministic behaviour. If any bits of the uninitialised
boolean are
nonzero, it will be evaluate to true, and the sensor will be silently disabled,
causing loss of temperature control.

This bug is critical because loss of temperature control risks physical
hardware damage.

Attached patch initialises temp_unreadable to restore temperature control.

Kind regards,
Ben.



-- System Information:
Debian Release: buster/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.15.0-2-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8), LANGUAGE=en_GB:en 
(charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages thermald depends on:
ii  libc6             2.27-3
ii  libdbus-1-3       1.12.6-2
ii  libdbus-glib-1-2  0.110-2
ii  libgcc1           1:8-20180414-1
ii  libglib2.0-0      2.56.1-2
ii  libstdc++6        8-20180414-1
ii  libxml2           2.9.4+dfsg1-6.1
ii  lsb-base          9.20170808

thermald recommends no packages.

thermald suggests no packages.

-- Configuration Files:
/etc/thermald/thermal-conf.xml changed:
<?xml version="1.0"?>
<ThermalConfiguration>
    <Platform>
        <Name>Passive control of CPU temperature</Name>
        <ProductName>*</ProductName>
        <Preference>QUIET</Preference>
        <ThermalZones>
            <ThermalZone>
                <Type>cpu</Type>
                <TripPoints>
                    <TripPoint>
                        <Temperature>80000</Temperature>
                        <type>passive</type>
                    </TripPoint>
                </TripPoints>
            </ThermalZone>
        </ThermalZones>
    </Platform>
</ThermalConfiguration>


-- no debconf information
--- src/thd_sensor.cpp.orig     2018-04-20 10:23:54.571949701 +1200
+++ src/thd_sensor.cpp  2018-04-20 10:24:17.291460842 +1200
@@ -28,7 +28,7 @@
 cthd_sensor::cthd_sensor(int _index, std::string control_path,
                std::string _type_str, int _type) :
                index(_index), type(_type), sensor_sysfs(control_path.c_str()), 
sensor_active(
-                               false), type_str(_type_str), 
async_capable(false), virtual_sensor(false), thresholds(0) {
+                               false), type_str(_type_str), 
async_capable(false), virtual_sensor(false), temp_unreadable(false), 
thresholds(0) {
 
 }
 

Reply via email to