Accepting request 747352 from home:frispete:network

- updated to 2.3.11:
  * see http://git.srcbox.net/gkrellm/log/
- removed gkrellm-2.3.10-d51b57616e.patch (released upstream now)

- add patch gkrellm-fix-critical-warning.patch to avoid calling
  strstr on NULL pointer

OBS-URL: https://build.opensuse.org/request/show/747352
OBS-URL: https://build.opensuse.org/package/show/X11:Utilities/gkrellm?expand=0&rev=12
This commit is contained in:
2019-11-11 13:46:18 +00:00
committed by Git OBS Bridge
parent dc76393c28
commit 45aa55007f
6 changed files with 49 additions and 538 deletions
+9
View File
@@ -1,3 +1,10 @@
-------------------------------------------------------------------
Mon Nov 11 13:40:05 UTC 2019 - Hans-Peter Jansen <hpj@urpla.net>
- updated to 2.3.11:
* see http://git.srcbox.net/gkrellm/log/
- removed gkrellm-2.3.10-d51b57616e.patch (released upstream now)
-------------------------------------------------------------------
Wed Apr 17 10:35:50 UTC 2019 - Hans-Peter Jansen <hpj@urpla.net>
@@ -12,6 +19,8 @@ Thu Nov 22 14:12:54 UTC 2018 - Hans-Peter Jansen <hpj@urpla.net>
- add patch gkrellm-install-and-reconnect-gkrellmd.conf.patch
in order to install /etc/gkrellmd.conf properly and make reconnect
default
- add patch gkrellm-fix-critical-warning.patch to avoid calling
strstr on NULL pointer
- refresh patches
-------------------------------------------------------------------
+2 -5
View File
@@ -17,7 +17,7 @@
Name: gkrellm
Version: 2.3.10
Version: 2.3.11
Release: 0
Summary: Manages Multiple Stacked Monitors
License: GPL-3.0-or-later
@@ -34,10 +34,8 @@ Source6: gkrellmd.service
%endif
# PATCH-FIX-OPENSUSE gkrellm-lib64-plugins-dir.patch pgajdos@suse.cz -- look also into /usr/lib64/gkrellm2/plugins
Patch1: %{name}-lib64-plugins-dir.patch
# PATCH-FIX-UPSTREAM gkrellm-2.3.10-d51b57616e.patch hpj@urpla.net -- apply upstream git master changes, contains a number of fixes, including gkrellm-2.3.5-fix-sdX-sort-order.patch and gkrellm-2.3.5-fix-diskio-corruption.patch
Patch2: %{name}-2.3.10-d51b57616e.patch
# PATCH-FIX-OPENSUSE gkrellm-install-and-reconnect-gkrellmd.conf.patch hpj@urpla.net -- install /etc/gkrellmd.conf and make reconnect default
Patch3: %{name}-install-and-reconnect-gkrellmd.conf.patch
Patch2: %{name}-install-and-reconnect-gkrellmd.conf.patch
BuildRequires: gtk2-devel
BuildRequires: libsensors4-devel
@@ -111,7 +109,6 @@ Files needed to build plugins for gkrellm2
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%build
cd src
-530
View File
@@ -1,530 +0,0 @@
diff --git a/Changelog b/Changelog
index b078036..ee52938 100644
--- a/Changelog
+++ b/Changelog
@@ -38,7 +38,7 @@ GKrellM Changelog
* Patch from Gerard Neil: Skip autofs mounts in free disk space polling
* Patch from Gerard Neil: Handle cifs as remote filesystem to use longer
nfs-timeout polling interval
- * Patch from Alexandre Rostovtsev: Explicitely link against gmodule-2.0
+ * Patch from Alexandre Rostovtsev: Explicitly link against gmodule-2.0
* Add support for GPU-Z sensor information on Windows
* Increase minimum required GLib version to 2.32, some parts of gkrellm
use newer GLib API
@@ -151,7 +151,7 @@ GKrellM Changelog
Use unicode function calls.
Use getaddrinfo() on win32.
Support CoreTemp application for getting cpu temperatures.
- Redo sensor-handling to support multipe sensor backends.
+ Redo sensor-handling to support multiple sensor backends.
Make Proc monitor work and properly count # of logged in users.
Mem monitor displays cache bytes.
System name shows some new windows versions.
diff --git a/README b/README
index 84df8ac..b8f59d4 100644
--- a/README
+++ b/README
@@ -549,7 +549,7 @@ The reasons for this choice are a) efficiency (though it might be possible
to open/close /dev/sysmon each time a reading is needed without major
performance issue) and b) as of october 2001, there's a bug in the
envsys(4) driver which sometimes causes deadlocks when processes try to
-access simultaneoulsy /dev/sysmon (see NetBSD PR#14368). A (quick and
+access simultaneously /dev/sysmon (see NetBSD PR#14368). A (quick and
dirty) workaround for this is to monopolize the driver :)
diff --git a/Themes.html b/Themes.html
index 9975120..e411ec3 100644
--- a/Themes.html
+++ b/Themes.html
@@ -719,7 +719,7 @@ krell parameters, frame rendering, etc are made in the gkrellmrc file.
Setting these values may have a variable effect on different monitors
because the programmer may use the values to differing degrees. For
example, margins may affect a label or some text decal but not affect
-other text decals because the programmer explicitely centers the decal.
+other text decals because the programmer explicitly centers the decal.
<p>
The possible gkrellmrc lines are listed here.
<p>
diff --git a/gkrellmd.1 b/gkrellmd.1
index 073a665..032e775 100644
--- a/gkrellmd.1
+++ b/gkrellmd.1
@@ -192,7 +192,7 @@ arguments may be given. If no hosts are specified on the command
line or in a gkrellmd.conf file, then all
hosts are allowed to connect. The
.I hostname
-argument may be a text name or a IPv4 or IPv6
+argument may be a text name or an IPv4 or IPv6
dotted notation. For IPv4, the simple subnet pattern x.y.z.* may be used.
Also, if
.I hostname
diff --git a/server/mail.c b/server/mail.c
index 83a8a7b..d7929f9 100644
--- a/server/mail.c
+++ b/server/mail.c
@@ -324,7 +324,7 @@ check_maildir(Mailbox *mbox)
| But, new mail arriving (writing mailbox) sets st_mtime while reading
| the mailbox (mail program reading) sets st_atime. So the test
| st_atime > st_mtime is testing if mbox has been read since last new mail.
- | Mail readers may restore st_mtime after writting status.
+ | Mail readers may restore st_mtime after writing status.
| And Netscape mail does status with X-Mozilla-Status: xxxS
| where S is bitwise or of status flags:
| 1: read 2: replied 4: marked 8: deleted
diff --git a/server/main.c b/server/main.c
index 8851e13..1c1f22e 100644
--- a/server/main.c
+++ b/server/main.c
@@ -1124,18 +1124,28 @@ detach_from_terminal(void)
#endif /* !defined(WIN32) */
-static void
+static int
drop_privileges(void)
{
#if !defined(WIN32)
+ int r;
if (drop_privs.gid > (uid_t)0)
{
- (void) setgroups((size_t)0, (gid_t*)0);
- (void) setgid(drop_privs.gid);
+ r = setgroups((size_t)0, (gid_t*)0);
+ if (r != 0)
+ return r;
+ r = setgid(drop_privs.gid);
+ if (r != 0)
+ return r;
}
if (drop_privs.uid > (uid_t)0)
- (void) setuid(drop_privs.uid);
+ {
+ r = setuid(drop_privs.uid);
+ if (r != 0)
+ return r;
+ }
#endif
+ return 0;
}
@@ -1201,7 +1211,12 @@ gkrellmd_run(gint argc, gchar **argv)
make_pidfile();
gkrellm_sys_main_init();
- drop_privileges();
+ if (drop_privileges() != 0)
+ {
+ g_warning("Failed to drop privileges: %s\n", strerror(errno));
+ gkrellm_sys_main_cleanup();
+ return 1;
+ }
_GK.start_time = time(0);
if (_GK.update_HZ < 1 || _GK.update_HZ > 10)
diff --git a/server/monitor.c b/server/monitor.c
index 3e3eec9..1a7fa45 100644
--- a/server/monitor.c
+++ b/server/monitor.c
@@ -2018,7 +2018,7 @@ init_sensors_monitor(void)
/* ======================================================= */
static time_t base_uptime,
up_seconds;
-static gulong up_minutes = -1;
+static glong up_minutes = -1;
void
gkrellm_uptime_set_base_uptime(time_t base)
@@ -2029,16 +2029,16 @@ gkrellm_uptime_set_base_uptime(time_t base)
static void
update_uptime(GkrellmdMonitor *mon, gboolean first_update)
{
- gint prev_up;
+ glong prev_up;
if (GK.ten_second_tick || up_minutes < 0 || first_update)
{
prev_up = up_minutes;
up_seconds = gkrellm_sys_uptime_read_uptime();
if (up_seconds > 0)
- up_minutes = (gint) (up_seconds / 60);
+ up_minutes = (glong) (up_seconds / 60);
else
- up_minutes = (gint)(time(0) - _GK.start_time + base_uptime) / 60;
+ up_minutes = (glong)(time(0) - _GK.start_time + base_uptime) / 60;
if (up_minutes != prev_up)
gkrellmd_need_serve(mon);
}
@@ -2050,7 +2050,7 @@ serve_uptime_data(GkrellmdMonitor *mon, gboolean first_serve)
gchar buf[128];
gkrellmd_set_serve_name(mon, "uptime");
- snprintf(buf, sizeof(buf), "%lu\n", (gulong) up_minutes);
+ snprintf(buf, sizeof(buf), "%ld\n", (glong) (up_minutes >= 0 ? up_minutes : 0));
gkrellmd_serve_data(mon, buf);
}
diff --git a/shared/log.c b/shared/log.c
index 44a429c..6d47993 100644
--- a/shared/log.c
+++ b/shared/log.c
@@ -92,7 +92,7 @@ gkrellm_log_file_cleanup()
}
static void
-gkrellm_log_file_log(GLogLevelFlags log_level, const gchar *message)
+gkrellm_log_file_log(G_GNUC_UNUSED GLogLevelFlags log_level, const gchar *message)
{
time_t raw_time;
char *local_time_str;
@@ -160,11 +160,11 @@ gkrellm_log_to_terminal(GLogLevelFlags log_level, const gchar *message)
//! Handler that receives all the log-messages first
static void
-gkrellm_log_handler(const gchar *log_domain, GLogLevelFlags log_level,
- const gchar *message, gpointer user_data)
+gkrellm_log_handler(G_GNUC_UNUSED const gchar *log_domain, GLogLevelFlags log_level,
+ const gchar *message, G_GNUC_UNUSED gpointer user_data)
{
gchar *localized_message;
- gint i;
+ guint i;
GkrellmLogFacility *f;
localized_message = g_locale_from_utf8(message, -1, NULL, NULL, NULL);
@@ -206,7 +206,7 @@ gkrellm_log_init()
void
gkrellm_log_cleanup()
{
- gint i;
+ guint i;
GkrellmLogFacility *f;
if (!s_log_facility_ptr_array)
@@ -231,7 +231,7 @@ gkrellm_log_register(
GkrellmLogCleanupFunc cleanup)
{
GkrellmLogFacility *f;
- gint i;
+ guint i;
if (!s_log_facility_ptr_array)
return FALSE; // gkrellm_log_init() not called yet
@@ -260,7 +260,7 @@ gkrellm_log_register(
gboolean
gkrellm_log_unregister(GkrellmLogFunc log)
{
- gint i;
+ guint i;
GkrellmLogFacility *f;
if (!s_log_facility_ptr_array)
diff --git a/src/battery.c b/src/battery.c
index bacd3cd..40d4198 100644
--- a/src/battery.c
+++ b/src/battery.c
@@ -382,7 +382,7 @@ estimate_battery_time_left(Battery *bat)
/* charging, use exponential: eta =~ 2.5 * time-constant (~=92%) */
eta = -2.5 * dt/60 / (log(1 - (gdouble)dp/(gdouble)(p+dp)));
else
- eta = abs((gdouble)p / rate); /* use linear */
+ eta = fabs((gdouble)p / rate); /* use linear */
#ifdef BAT_ESTIMATE_DEBUG
fprintf(stderr, "eta = %.2f\t", eta);
diff --git a/src/client.c b/src/client.c
index e644eba..8f9d5f8 100644
--- a/src/client.c
+++ b/src/client.c
@@ -1787,6 +1787,11 @@ read_server_setup(gint fd)
void
gkrellm_client_mode_disconnect(void)
{
+ if (client_input_id != 0)
+ {
+ gdk_input_remove(client_input_id);
+ client_input_id = 0;
+ }
if (client_fd >= 0)
{
gkrellm_debug(DEBUG_CLIENT, "gkrellm_client_mode_disconnect(); " \
@@ -1795,8 +1800,6 @@ gkrellm_client_mode_disconnect(void)
}
client_fd = -1;
server_alive = FALSE;
- gdk_input_remove(client_input_id);
- client_input_id = 0;
}
static void
diff --git a/src/fs.c b/src/fs.c
index 626bc74..5db65b1 100644
--- a/src/fs.c
+++ b/src/fs.c
@@ -460,7 +460,7 @@ fs_draw_decal_text(FSmon *fs, gint value)
GkrellmDecal *d;
GkrellmTextstyle ts_save;
gchar buf[128];
- gint x_off, w;
+ gint x_off, w = 0;
if (value == 0)
{
@@ -810,7 +810,7 @@ fs_update(void)
if (fs->blocks > 2147483648LL)
fs->krell_factor = 1024 * 1024;
else if (fs->blocks > 2097152LL)
- fs->krell_factor = 1024 * 1024;
+ fs->krell_factor = 1024;
else
fs->krell_factor = 1;
}
diff --git a/src/gkrellm-sysdeps.h b/src/gkrellm-sysdeps.h
index 9a0f8fc..07295fb 100644
--- a/src/gkrellm-sysdeps.h
+++ b/src/gkrellm-sysdeps.h
@@ -139,7 +139,7 @@ void gkrellm_proc_assign_users(gint n_users);
| the device numbers to an identifying name. It may also set an order
| value for the name to control the stacking order of the disk chart.
| If gkrellm_disk_assign_data_by_name() is used, then an order may be
-| optionally specifed with gkrellm_sys_disk_order_from_name().
+| optionally specified with gkrellm_sys_disk_order_from_name().
| (the default order of -1 simply appends disk charts as data for them
| is reported). After this function is called for a disk, the function
| gkrellm_disk_subdisk_assign_data_by_name() may be called for subdisk
diff --git a/src/gui.c b/src/gui.c
index 406f2e9..68a43e6 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -1569,7 +1569,7 @@ gkrellm_save_theme_config(void)
gchar *path;
/* Assume gkrellm -t is for testing and don't save theme config changes.
- | Similary for _GK.demo.
+ | Similarly for _GK.demo.
*/
if (!theme_modified || _GK.command_line_theme || _GK.demo || _GK.no_config)
return;
diff --git a/src/krell.c b/src/krell.c
index 697c4a0..07a1a1d 100644
--- a/src/krell.c
+++ b/src/krell.c
@@ -663,7 +663,7 @@ reset_text_layer_pixmap_decal_region(GkrellmPanel *p, GkrellmDecal *d)
| a decal's extents. So when scrolling, a slow Pango redraw at each scroll
| step can be avoided if the text string has not changed.
| There are a couple of limitations because it's impossible to generate a
- | stencil bitmask of Pango rendered text (Pango doesn't allow writting to
+ | stencil bitmask of Pango rendered text (Pango doesn't allow writing to
| depth 1 and it looks at the background pixmap colors as it renders):
| 1) A scroll text decal is not transparent and will hide any objects
| underneath it, so when this condition is detected, scroll drawing
diff --git a/src/mail.c b/src/mail.c
index a47cf01..51e53a6 100644
--- a/src/mail.c
+++ b/src/mail.c
@@ -814,12 +814,36 @@ tcp_shutdown(ConnInfo *conn, Mailbox *mbox, gchar *message, gboolean warn)
static gboolean
ssl_negotiate(ConnInfo *conn, Mailbox *mbox)
{
- const SSL_METHOD *ssl_method;
+ const SSL_METHOD *ssl_method = NULL;
+ gchar buf[128];
+#if defined(OPENSSL_VERSION_NUMBER) && (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+ ssl_method = TLS_client_method();
+ if (_GK.debug_level & DEBUG_MAIL)
+ {
+ format_remote_mbox_name(mbox, buf, sizeof(buf));
+ g_debug("ssl_negotiate( %s ): will use TLS client method\n", buf);
+ }
+#else
if (mbox->account->use_ssl == SSL_TRANSPORT)
+ {
ssl_method = SSLv23_client_method();
+ if (_GK.debug_level & DEBUG_MAIL)
+ {
+ format_remote_mbox_name(mbox, buf, sizeof(buf));
+ g_debug("ssl_negotiate( %s ): will use SSLv23 client method\n", buf);
+ }
+ }
else
+ {
ssl_method = TLSv1_client_method();
+ if (_GK.debug_level & DEBUG_MAIL)
+ {
+ format_remote_mbox_name(mbox, buf, sizeof(buf));
+ g_debug("ssl_negotiate( %s ): will use TLSv1 client method\n", buf);
+ }
+ }
+#endif
if (ssl_method == NULL)
return tcp_shutdown(conn, mbox,
N_("Cannot initialize SSL method."),
@@ -1251,7 +1275,11 @@ check_imap(Mailbox *mbox)
#ifdef HAVE_SSL
if (account->use_ssl == SSL_STARTTLS)
{
- gkrellm_debug(DEBUG_MAIL, "check_imap: Issuing STARTTLS\n");
+ if (_GK.debug_level & DEBUG_MAIL)
+ {
+ format_remote_mbox_name(mbox, buf, sizeof(buf));
+ g_debug("check_imap( %s ): issuing STARTTLS\n", buf);
+ }
snprintf(line, sizeof(line), "a%03d STARTTLS\r\n", ++seq);
server_command(&conn, mbox, line);
snprintf(line, sizeof(line), "a%03d OK", seq);
@@ -1261,7 +1289,11 @@ check_imap(Mailbox *mbox)
TRUE);
if (!ssl_negotiate(&conn, mbox))
return FALSE;
- gkrellm_debug(DEBUG_MAIL, "check_imap: STARTTLS successful\n");
+ if (_GK.debug_level & DEBUG_MAIL)
+ {
+ format_remote_mbox_name(mbox, buf, sizeof(buf));
+ g_debug("check_imap( %s ): STARTTLS successful\n", buf);
+ }
}
#endif
@@ -1560,7 +1592,7 @@ check_maildir(Mailbox *mbox)
| But, new mail arriving (writing mailbox) sets st_mtime while reading
| the mailbox (mail program reading) sets st_atime. So the test
| st_atime > st_mtime is testing if mbox has been read since last new mail.
- | Mail readers may restore st_mtime after writting status.
+ | Mail readers may restore st_mtime after writing status.
| And Netscape mail does status with X-Mozilla-Status: xxxS
| where S is bitwise or of status flags:
| 1: read 2: replied 4: marked 8: deleted
diff --git a/src/mem.c b/src/mem.c
index 2f85935..c130aa4 100644
--- a/src/mem.c
+++ b/src/mem.c
@@ -299,7 +299,7 @@ draw_decal_label(MeminfoMeter *mm, gint draw_to_screen)
GkrellmDecal *d;
GkrellmTextstyle ts_save;
gchar buf[128];
- gint x_off, w;
+ gint x_off, w = 0;
d = mm->decal_label;
if (! mm->label_is_data)
diff --git a/src/proc.c b/src/proc.c
index a813066..80887b6 100644
--- a/src/proc.c
+++ b/src/proc.c
@@ -347,7 +347,7 @@ setup_proc_scaling(void)
res = gkrellm_get_chartconfig_grid_resolution(cp->config);
- /* Since grid_resolution is set for load, set krell_full_scale explicitely
+ /* Since grid_resolution is set for load, set krell_full_scale explicitly
| to get what I want, which is 10 forks full scale.
| When res or number of grids is changed, scale all fork data to keep a
| fixed 50 forks/sec max on the chart.
diff --git a/src/sensors.c b/src/sensors.c
index 9482874..80a43e7 100644
--- a/src/sensors.c
+++ b/src/sensors.c
@@ -1669,7 +1669,7 @@ gkrellm_init_sensor_monitor(void)
| to composite CPU on a SMP machine.
|
| 2.1.15 scales sensor factor/offset values by SENSOR_FLOAT_FACTOR to avoid
- | writting decimal points in the config. This is not backwards compatible
+ | writing decimal points in the config. This is not backwards compatible
| with the pre 2.1.15 sensor_config format hence the config file name
| change to sensor-config. But sensor_config is forward compatible
| since the float factor defaults to 1.0.
diff --git a/src/sysdeps/linux.c b/src/sysdeps/linux.c
index c82dfaf..921cf63 100644
--- a/src/sysdeps/linux.c
+++ b/src/sysdeps/linux.c
@@ -556,6 +556,8 @@ gkrellm_sys_disk_order_from_name(const gchar *name)
}
if (i >= table_size)
i = -1;
+ if (i > 9) /* > hda */
+ i += (i - 10) * 16 + suffix - dm->suffix_base;
return i;
}
@@ -1523,7 +1525,7 @@ gkrellm_sys_fs_get_mounts_list(void)
while (fgets(buf, sizeof(buf), f))
{
dev[0] = dir[0] = type[0] = '\0';
- sscanf(buf, "%512s %512s %127s", dev, dir, type);
+ sscanf(buf, "%511s %511s %127s", dev, dir, type);
fix_fstab_name(dev);
fix_fstab_name(dir);
fix_fstab_name(type);
@@ -3155,6 +3157,7 @@ sensors_nvidia_smi_read(gboolean setup)
|| !strcmp(id, ":")
)
continue;
+ stmp = str;
if ((str = g_strstr_len(str, -1, "Temperature")) != NULL)
{
str += 11;
@@ -3183,6 +3186,10 @@ sensors_nvidia_smi_read(gboolean setup)
else if ((smi = nvidia_smi_lookup(id)) != NULL)
smi->temp = temp;
}
+ else
+ {
+ str = stmp;
+ }
}
}
if (output)
@@ -4029,7 +4036,7 @@ gkrellm_sys_sensors_init(void)
sensors_nvidia_smi_read(TRUE);
- /* nvidia-settings GPU core & ambient temperatues
+ /* nvidia-settings GPU core & ambient temperatures
*/
cnt = sensors_nvidia_settings_ngpus();
ngpus_added = 0;
diff --git a/src/utils.c b/src/utils.c
index f6162e9..0190ed8 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -276,13 +276,17 @@ gkrellm_format_size_abbrev(gchar *buf, size_t buflen, gfloat size,
{
gfloat abs_size;
gint i;
+ int ret;
abs_size = (size < 0.0) ? -size : size;
for (i = 0; i < tbl_size - 1; ++i)
if (abs_size < tbl[i].limit)
break;
- return snprintf(buf, buflen, tbl[i].format, size / tbl[i].divisor);
+ ret = snprintf(buf, buflen, tbl[i].format, size / tbl[i].divisor);
+ if (ret < 0 || ret >= buflen)
+ return 0;
+ return ret;
}
@@ -366,7 +370,8 @@ gkrellm_text_extents(PangoFontDescription *font_desc, gchar *text,
else
{
utf8 = g_locale_to_utf8(text, -1, NULL, NULL, NULL);
- pango_layout_set_text(layout, utf8, len);
+ if (utf8)
+ pango_layout_set_text(layout, utf8, len);
g_free(utf8);
}
iter = pango_layout_get_iter(layout);
@@ -456,7 +461,8 @@ gkrellm_gdk_draw_text(GdkDrawable *drawable, PangoFontDescription *font_desc,
layout = gtk_widget_create_pango_layout(gkrellm_get_top_window(), NULL);
pango_layout_set_font_description(layout, font_desc);
- pango_layout_set_text(layout, string, len);
+ if (g_utf8_validate(string, -1, NULL))
+ pango_layout_set_text(layout, string, len);
gdk_draw_layout(drawable, gc, x, y, layout);
g_object_unref(layout);
}
-3
View File
@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8b9ec8baadcd5830c6aff04ba86dc9ed317a15c1c3787440bd1e680fb2fcd766
size 782794
+3
View File
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1ee0643ed9ed99f88c1504c89d9ccb20780cf29319c904b68e80a8e7c8678c06
size 783123
+35
View File
@@ -0,0 +1,35 @@
From 3db76c647a04a603bafae19cc699bd50436d66a2 Mon Sep 17 00:00:00 2001
From: Jindřich Makovička
Date: Sat, 20 May 2017 10:34:52 +0200
Subject: Avoid calling g_strstr_len with NULL haystack
---
src/sysdeps/linux.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/sysdeps/linux.c b/src/sysdeps/linux.c
index 460a03d..99e7261 100644
--- a/src/sysdeps/linux.c
+++ b/src/sysdeps/linux.c
@@ -3157,6 +3157,7 @@ sensors_nvidia_smi_read(gboolean setup)
|| !strcmp(id, ":")
)
continue;
+ stmp = str;
if ((str = g_strstr_len(str, -1, "Temperature")) != NULL)
{
str += 11;
@@ -3185,6 +3186,10 @@ sensors_nvidia_smi_read(gboolean setup)
else if ((smi = nvidia_smi_lookup(id)) != NULL)
smi->temp = temp;
}
+ else
+ {
+ str = stmp;
+ }
}
}
if (output)
--
cgit v0.12