Thomas Renninger
67d5ef837b
Add patch from upstream, and fix up in service file and remove unneeded requires. The xterm Requires was added back when the service file was added. It was perhaps needed back then, but is surely not needed now. OBS-URL: https://build.opensuse.org/request/show/431478 OBS-URL: https://build.opensuse.org/package/show/Base:System/powertop?expand=0&rev=48
1017 lines
33 KiB
Diff
1017 lines
33 KiB
Diff
diff --git a/src/cpu/abstract_cpu.cpp b/src/cpu/abstract_cpu.cpp
|
|
index 17acb71..cacb130 100644
|
|
--- a/src/cpu/abstract_cpu.cpp
|
|
+++ b/src/cpu/abstract_cpu.cpp
|
|
@@ -71,9 +71,9 @@ void abstract_cpu::account_freq(uint64_t freq, uint64_t duration)
|
|
state->freq = freq;
|
|
hz_to_human(freq, state->human_name);
|
|
if (freq == 0)
|
|
- strcpy(state->human_name, _("Idle"));
|
|
+ pt_strcpy(state->human_name, _("Idle"));
|
|
if (is_turbo(freq, max_frequency, max_minus_one_frequency))
|
|
- sprintf(state->human_name, _("Turbo Mode"));
|
|
+ pt_strcpy(state->human_name, _("Turbo Mode"));
|
|
|
|
state->after_count = 1;
|
|
}
|
|
@@ -205,8 +205,8 @@ void abstract_cpu::insert_cstate(const char *linux_name, const char *human_name,
|
|
|
|
cstates.push_back(state);
|
|
|
|
- strcpy(state->linux_name, linux_name);
|
|
- strcpy(state->human_name, human_name);
|
|
+ pt_strcpy(state->linux_name, linux_name);
|
|
+ pt_strcpy(state->human_name, human_name);
|
|
|
|
state->line_level = -1;
|
|
|
|
@@ -337,7 +337,7 @@ void abstract_cpu::insert_pstate(uint64_t freq, const char *human_name, uint64_t
|
|
pstates.push_back(state);
|
|
|
|
state->freq = freq;
|
|
- strcpy(state->human_name, human_name);
|
|
+ pt_strcpy(state->human_name, human_name);
|
|
|
|
|
|
state->time_before = duration;
|
|
diff --git a/src/cpu/cpu.cpp b/src/cpu/cpu.cpp
|
|
index ee87c04..ce4b29d 100644
|
|
--- a/src/cpu/cpu.cpp
|
|
+++ b/src/cpu/cpu.cpp
|
|
@@ -78,18 +78,18 @@ static class abstract_cpu * new_package(int package, int cpu, char * vendor, int
|
|
ret->set_type("Package");
|
|
ret->childcount = 0;
|
|
|
|
- sprintf(packagename, _("cpu package %i"), cpu);
|
|
+ snprintf(packagename, sizeof(packagename), _("cpu package %i"), cpu);
|
|
cpudev = new class cpudevice(_("cpu package"), packagename, ret);
|
|
all_devices.push_back(cpudev);
|
|
|
|
- sprintf(packagename, _("package-%i"), cpu);
|
|
+ snprintf(packagename, sizeof(packagename), _("package-%i"), cpu);
|
|
cpu_rapl_dev = new class cpu_rapl_device(cpudev, _("cpu rapl package"), packagename, ret);
|
|
if (cpu_rapl_dev->device_present())
|
|
all_devices.push_back(cpu_rapl_dev);
|
|
else
|
|
delete cpu_rapl_dev;
|
|
|
|
- sprintf(packagename, _("package-%i"), cpu);
|
|
+ snprintf(packagename, sizeof(packagename), _("package-%i"), cpu);
|
|
dram_rapl_dev = new class dram_rapl_device(cpudev, _("dram rapl package"), packagename, ret);
|
|
if (dram_rapl_dev->device_present())
|
|
all_devices.push_back(dram_rapl_dev);
|
|
@@ -258,7 +258,7 @@ void enumerate_cpus(void)
|
|
c++;
|
|
if (*c == ' ')
|
|
c++;
|
|
- strncpy(vendor,c, 127);
|
|
+ pt_strcpy(vendor,c);
|
|
}
|
|
}
|
|
if (strncmp(line, "processor\t",10) == 0) {
|
|
@@ -556,14 +556,14 @@ void report_display_cpu_cstates(void)
|
|
if (strcmp(core_type, "Core") == 0 ) {
|
|
core_data[idx2]="";
|
|
idx2+=1;
|
|
- sprintf(tmp_num, __("Core %d"),_core->get_number());
|
|
+ snprintf(tmp_num, sizeof(tmp_num), __("Core %d"), _core->get_number());
|
|
core_data[idx2]=string(tmp_num);
|
|
idx2+=1;
|
|
core_num+=1;
|
|
} else {
|
|
core_data[idx2]="";
|
|
idx2+=1;
|
|
- sprintf(tmp_num,__("GPU %d"),_core->get_number());
|
|
+ snprintf(tmp_num, sizeof(tmp_num), __("GPU %d"), _core->get_number());
|
|
core_data[idx2]=string(tmp_num);
|
|
idx2+=1;
|
|
}
|
|
@@ -765,7 +765,7 @@ void report_display_cpu_pstates(void)
|
|
if (line == LEVEL_HEADER) {
|
|
core_data[idx2]="";
|
|
idx2+=1;
|
|
- sprintf(tmp_num,__("Core %d"),_core->get_number());
|
|
+ snprintf(tmp_num, sizeof(tmp_num), __("Core %d"), _core->get_number());
|
|
core_data[idx2]=string(tmp_num);
|
|
idx2+=1;
|
|
} else {
|
|
@@ -786,7 +786,7 @@ void report_display_cpu_pstates(void)
|
|
continue;
|
|
|
|
if (line == LEVEL_HEADER) {
|
|
- sprintf(tmp_num,__("CPU %d"),_cpu->get_number());
|
|
+ snprintf(tmp_num, sizeof(tmp_num), __("CPU %d"), _cpu->get_number());
|
|
cpu_data[idx3] = string(tmp_num);
|
|
idx3+=1;
|
|
continue;
|
|
diff --git a/src/cpu/cpu_linux.cpp b/src/cpu/cpu_linux.cpp
|
|
index e19fba1..deaa12c 100644
|
|
--- a/src/cpu/cpu_linux.cpp
|
|
+++ b/src/cpu/cpu_linux.cpp
|
|
@@ -64,8 +64,8 @@ void cpu_linux::parse_cstates_start(void)
|
|
if (strlen(entry->d_name) < 3)
|
|
continue;
|
|
|
|
- strcpy(linux_name, entry->d_name);
|
|
- strcpy(human_name, linux_name);
|
|
+ pt_strcpy(linux_name, entry->d_name);
|
|
+ pt_strcpy(human_name, linux_name);
|
|
|
|
snprintf(filename + len, 256 - len, "/%s/name", entry->d_name);
|
|
|
|
@@ -76,7 +76,7 @@ void cpu_linux::parse_cstates_start(void)
|
|
}
|
|
|
|
if (strcmp(human_name, "C0")==0)
|
|
- strcpy(human_name, _("C0 polling"));
|
|
+ pt_strcpy(human_name, _("C0 polling"));
|
|
|
|
snprintf(filename + len, 256 - len, "/%s/usage", entry->d_name);
|
|
file.open(filename, ios::in);
|
|
@@ -164,8 +164,8 @@ void cpu_linux::parse_cstates_end(void)
|
|
if (strlen(entry->d_name) < 3)
|
|
continue;
|
|
|
|
- strcpy(linux_name, entry->d_name);
|
|
- strcpy(human_name, linux_name);
|
|
+ pt_strcpy(linux_name, entry->d_name);
|
|
+ pt_strcpy(human_name, linux_name);
|
|
|
|
|
|
snprintf(filename + len, 256 - len, "/%s/usage", entry->d_name);
|
|
diff --git a/src/cpu/cpudevice.cpp b/src/cpu/cpudevice.cpp
|
|
index 371d8a8..4c7ca7b 100644
|
|
--- a/src/cpu/cpudevice.cpp
|
|
+++ b/src/cpu/cpudevice.cpp
|
|
@@ -26,13 +26,14 @@
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
+#include "../lib.h"
|
|
#include "../parameters/parameters.h"
|
|
|
|
|
|
cpudevice::cpudevice(const char *classname, const char *dev_name, class abstract_cpu *_cpu)
|
|
{
|
|
- strcpy(_class, classname);
|
|
- strcpy(_cpuname, dev_name);
|
|
+ pt_strcpy(_class, classname);
|
|
+ pt_strcpy(_cpuname, dev_name);
|
|
cpu = _cpu;
|
|
wake_index = get_param_index("cpu-wakeups");;
|
|
consumption_index = get_param_index("cpu-consumption");;
|
|
diff --git a/src/devices/ahci.cpp b/src/devices/ahci.cpp
|
|
index 6ea1322..fd5a650 100644
|
|
--- a/src/devices/ahci.cpp
|
|
+++ b/src/devices/ahci.cpp
|
|
@@ -127,12 +127,12 @@ ahci::ahci(char *_name, char *path): device()
|
|
start_slumber = 0;
|
|
start_devslp = 0;
|
|
start_partial = 0;
|
|
- strncpy(sysfs_path, path, sizeof(sysfs_path));
|
|
+ pt_strcpy(sysfs_path, path);
|
|
|
|
register_sysfs_path(sysfs_path);
|
|
|
|
snprintf(devname, 128, "ahci:%s", _name);
|
|
- strncpy(name, devname, sizeof(name));
|
|
+ pt_strcpy(name, devname);
|
|
active_index = get_param_index("ahci-link-power-active");
|
|
partial_index = get_param_index("ahci-link-power-partial");
|
|
|
|
@@ -415,18 +415,18 @@ void ahci::report_device_stats(string *ahci_data, int idx)
|
|
printf("\nData from ahci %s\n",ahci_data[offset].c_str());
|
|
offset +=1;
|
|
|
|
- sprintf(util, "%5.1f", active_util);
|
|
+ snprintf(util, sizeof(util), "%5.1f", active_util);
|
|
ahci_data[offset]= util;
|
|
offset +=1;
|
|
|
|
- sprintf(util, "%5.1f", partial_util);
|
|
+ snprintf(util, sizeof(util), "%5.1f", partial_util);
|
|
ahci_data[offset]= util;
|
|
offset +=1;
|
|
|
|
- sprintf(util, "%5.1f", slumber_util);
|
|
+ snprintf(util, sizeof(util), "%5.1f", slumber_util);
|
|
ahci_data[offset]= util;
|
|
offset +=1;
|
|
|
|
- sprintf(util, "%5.1f", devslp_util);
|
|
+ snprintf(util, sizeof(util), "%5.1f", devslp_util);
|
|
ahci_data[offset]= util;
|
|
}
|
|
diff --git a/src/devices/alsa.cpp b/src/devices/alsa.cpp
|
|
index 961a9e5..dfbd85d 100644
|
|
--- a/src/devices/alsa.cpp
|
|
+++ b/src/devices/alsa.cpp
|
|
@@ -51,11 +51,11 @@ alsa::alsa(const char *_name, const char *path): device()
|
|
start_active = 0;
|
|
end_inactive = 0;
|
|
start_inactive = 0;
|
|
- strncpy(sysfs_path, path, sizeof(sysfs_path));
|
|
+ pt_strcpy(sysfs_path, path);
|
|
|
|
snprintf(devname, 4096, "alsa:%s", _name);
|
|
snprintf(humanname, 4096, "alsa:%s", _name);
|
|
- strncpy(name, devname, sizeof(name));
|
|
+ pt_strcpy(name, devname);
|
|
rindex = get_result_index(name);
|
|
|
|
guilty[0] = 0;
|
|
@@ -200,8 +200,8 @@ void alsa::register_power_with_devlist(struct result_bundle *results, struct par
|
|
|
|
const char * alsa::human_name(void)
|
|
{
|
|
- sprintf(temp_buf, "%s", humanname);
|
|
+ pt_strcpy(temp_buf, humanname);
|
|
if (strlen(guilty) > 0)
|
|
- sprintf(temp_buf, "%s (%s)", humanname, guilty);
|
|
+ snprintf(temp_buf, sizeof(temp_buf), "%s (%s)", humanname, guilty);
|
|
return temp_buf;
|
|
}
|
|
diff --git a/src/devices/backlight.cpp b/src/devices/backlight.cpp
|
|
index d12cf98..6560002 100644
|
|
--- a/src/devices/backlight.cpp
|
|
+++ b/src/devices/backlight.cpp
|
|
@@ -46,7 +46,7 @@ backlight::backlight(const char *_name, const char *path): device()
|
|
max_level = 0;
|
|
start_level = 0;
|
|
end_level = 0;
|
|
- strncpy(sysfs_path, path, sizeof(sysfs_path));
|
|
+ pt_strcpy(sysfs_path, path);
|
|
register_sysfs_path(sysfs_path);
|
|
snprintf(name, sizeof(name) - 1, "backlight:%s", _name);
|
|
r_index = get_result_index(name);
|
|
diff --git a/src/devices/devfreq.cpp b/src/devices/devfreq.cpp
|
|
index afa9bb6..598389c 100644
|
|
--- a/src/devices/devfreq.cpp
|
|
+++ b/src/devices/devfreq.cpp
|
|
@@ -45,7 +45,7 @@ static vector<class devfreq *> all_devfreq;
|
|
|
|
devfreq::devfreq(const char* dpath): device()
|
|
{
|
|
- strncpy(dir_name, dpath, sizeof(dir_name));
|
|
+ pt_strcpy(dir_name, dpath);
|
|
}
|
|
|
|
uint64_t devfreq::parse_freq_time(char* pchr)
|
|
diff --git a/src/devices/device.cpp b/src/devices/device.cpp
|
|
index 91ebc12..1757a55 100644
|
|
--- a/src/devices/device.cpp
|
|
+++ b/src/devices/device.cpp
|
|
@@ -68,11 +68,11 @@ void device::register_sysfs_path(const char *path)
|
|
{
|
|
char current_path[PATH_MAX + 1];
|
|
int iter = 0;
|
|
- strcpy(current_path, path);
|
|
+ pt_strcpy(current_path, path);
|
|
|
|
while (iter++ < 10) {
|
|
char test_path[PATH_MAX + 1];
|
|
- sprintf(test_path, "%s/device", current_path);
|
|
+ snprintf(test_path, sizeof(test_path), "%s/device", current_path);
|
|
if (access(test_path, R_OK) == 0)
|
|
strcpy(current_path, test_path);
|
|
else
|
|
diff --git a/src/devices/i915-gpu.cpp b/src/devices/i915-gpu.cpp
|
|
index c63e11f..d0f1d69 100644
|
|
--- a/src/devices/i915-gpu.cpp
|
|
+++ b/src/devices/i915-gpu.cpp
|
|
@@ -30,7 +30,7 @@
|
|
#include <dirent.h>
|
|
#include <unistd.h>
|
|
#include <limits.h>
|
|
-
|
|
+#include "../lib.h"
|
|
|
|
using namespace std;
|
|
|
|
@@ -78,11 +78,11 @@ void create_i915_gpu(void)
|
|
class i915gpu *gpu;
|
|
gpu_rapl_device *rapl_dev;
|
|
|
|
- strcpy(filename, "/sys/kernel/debug/tracing/events/i915/i915_gem_ring_dispatch/format");
|
|
+ pt_strcpy(filename, "/sys/kernel/debug/tracing/events/i915/i915_gem_ring_dispatch/format");
|
|
|
|
if (access(filename, R_OK) !=0) {
|
|
/* try an older tracepoint */
|
|
- strcpy(filename, "/sys/kernel/debug/tracing/events/i915/i915_gem_request_submit/format");
|
|
+ pt_strcpy(filename, "/sys/kernel/debug/tracing/events/i915/i915_gem_request_submit/format");
|
|
if (access(filename, R_OK) != 0)
|
|
return;
|
|
}
|
|
diff --git a/src/devices/network.cpp b/src/devices/network.cpp
|
|
index 002600b..8087b7f 100644
|
|
--- a/src/devices/network.cpp
|
|
+++ b/src/devices/network.cpp
|
|
@@ -40,6 +40,7 @@ using namespace std;
|
|
|
|
#include "device.h"
|
|
#include "network.h"
|
|
+#include "../lib.h"
|
|
#include "../parameters/parameters.h"
|
|
#include "../process/process.h"
|
|
extern "C" {
|
|
@@ -140,40 +141,40 @@ network::network(const char *_name, const char *path): device()
|
|
valid_high = -1;
|
|
valid_powerunsave = -1;
|
|
|
|
- strncpy(sysfs_path, path, sizeof(sysfs_path));
|
|
+ pt_strcpy(sysfs_path, path);
|
|
register_sysfs_path(sysfs_path);
|
|
- sprintf(devname, "%s", _name);
|
|
+ pt_strcpy(devname, _name);
|
|
sprintf(humanname, "nic:%s", _name);
|
|
- strncpy(name, devname, sizeof(name));
|
|
+ pt_strcpy(name, devname);
|
|
|
|
- sprintf(devname, "%s-up", _name);
|
|
+ snprintf(devname, sizeof(devname), "%s-up", _name);
|
|
index_up = get_param_index(devname);
|
|
rindex_up = get_result_index(devname);
|
|
|
|
- sprintf(devname, "%s-powerunsave", _name);
|
|
+ snprintf(devname, sizeof(devname), "%s-powerunsave", _name);
|
|
index_powerunsave = get_param_index(devname);
|
|
rindex_powerunsave = get_result_index(devname);
|
|
|
|
- sprintf(devname, "%s-link-100", _name);
|
|
+ snprintf(devname, sizeof(devname), "%s-link-100", _name);
|
|
index_link_100 = get_param_index(devname);
|
|
rindex_link_100 = get_result_index(devname);
|
|
|
|
- sprintf(devname, "%s-link-1000", _name);
|
|
+ snprintf(devname, sizeof(devname), "%s-link-1000", _name);
|
|
index_link_1000 = get_param_index(devname);
|
|
rindex_link_1000 = get_result_index(devname);
|
|
|
|
- sprintf(devname, "%s-link-high", _name);
|
|
+ snprintf(devname, sizeof(devname), "%s-link-high", _name);
|
|
index_link_high = get_param_index(devname);
|
|
rindex_link_high = get_result_index(devname);
|
|
|
|
- sprintf(devname, "%s-packets", _name);
|
|
+ snprintf(devname, sizeof(devname), "%s-packets", _name);
|
|
index_pkts = get_param_index(devname);
|
|
rindex_pkts = get_result_index(devname);
|
|
|
|
memset(line, 0, 4096);
|
|
filename.append("/device/driver");
|
|
if (readlink(filename.c_str(), line, 4096) > 0) {
|
|
- sprintf(humanname, _("Network interface: %s (%s)"), _name, basename(line));
|
|
+ snprintf(humanname, sizeof(humanname), _("Network interface: %s (%s)"), _name, basename(line));
|
|
};
|
|
}
|
|
|
|
@@ -189,7 +190,7 @@ static int net_iface_up(const char *iface)
|
|
if (sock<0)
|
|
return 0;
|
|
|
|
- strcpy(ifr.ifr_name, iface);
|
|
+ pt_strcpy(ifr.ifr_name, iface);
|
|
|
|
/* Check if the interface is up */
|
|
ret = ioctl(sock, SIOCGIFFLAGS, &ifr);
|
|
@@ -221,7 +222,7 @@ static int iface_link(const char *name)
|
|
if (sock<0)
|
|
return 0;
|
|
|
|
- strcpy(ifr.ifr_name, name);
|
|
+ pt_strcpy(ifr.ifr_name, name);
|
|
|
|
memset(&cmd, 0, sizeof(cmd));
|
|
|
|
@@ -249,7 +250,7 @@ static int iface_speed(const char *name)
|
|
if (sock<0)
|
|
return 0;
|
|
|
|
- strcpy(ifr.ifr_name, name);
|
|
+ pt_strcpy(ifr.ifr_name, name);
|
|
|
|
memset(&cmd, 0, sizeof(cmd));
|
|
|
|
@@ -353,22 +354,22 @@ static void netdev_callback(const char *d_name)
|
|
|
|
f_name.append(d_name);
|
|
|
|
- sprintf(devname, "%s-up", d_name);
|
|
+ snprintf(devname, sizeof(devname), "%s-up", d_name);
|
|
register_parameter(devname);
|
|
|
|
- sprintf(devname, "%s-powerunsave", d_name);
|
|
+ snprintf(devname, sizeof(devname), "%s-powerunsave", d_name);
|
|
register_parameter(devname);
|
|
|
|
- sprintf(devname, "%s-link-100", d_name);
|
|
+ snprintf(devname, sizeof(devname), "%s-link-100", d_name);
|
|
register_parameter(devname);
|
|
|
|
- sprintf(devname, "%s-link-1000", d_name);
|
|
+ snprintf(devname, sizeof(devname), "%s-link-1000", d_name);
|
|
register_parameter(devname);
|
|
|
|
- sprintf(devname, "%s-link-high", d_name);
|
|
+ snprintf(devname, sizeof(devname), "%s-link-high", d_name);
|
|
register_parameter(devname);
|
|
|
|
- sprintf(devname, "%s-packets", d_name);
|
|
+ snprintf(devname, sizeof(devname), "%s-packets", d_name);
|
|
register_parameter(devname);
|
|
|
|
network *bl = new(std::nothrow) class network(d_name, f_name.c_str());
|
|
diff --git a/src/devices/rfkill.cpp b/src/devices/rfkill.cpp
|
|
index 7dea12e..43dd520 100644
|
|
--- a/src/devices/rfkill.cpp
|
|
+++ b/src/devices/rfkill.cpp
|
|
@@ -50,11 +50,11 @@ rfkill::rfkill(char *_name, char *path): device()
|
|
start_hard = 0;
|
|
end_soft = 0;
|
|
end_hard = 0;
|
|
- strncpy(sysfs_path, path, sizeof(sysfs_path));
|
|
+ pt_strcpy(sysfs_path, path);
|
|
register_sysfs_path(sysfs_path);
|
|
snprintf(devname, 128, "radio:%s", _name);
|
|
snprintf(humanname, 4096, "radio:%s", _name);
|
|
- strncpy(name, devname, sizeof(name));
|
|
+ pt_strcpy(name, devname);
|
|
register_parameter(devname);
|
|
index = get_param_index(devname);
|
|
rindex = get_result_index(name);
|
|
diff --git a/src/devices/runtime_pm.cpp b/src/devices/runtime_pm.cpp
|
|
index 0f9c5a4..5c8d715 100644
|
|
--- a/src/devices/runtime_pm.cpp
|
|
+++ b/src/devices/runtime_pm.cpp
|
|
@@ -40,10 +40,10 @@
|
|
|
|
runtime_pmdevice::runtime_pmdevice(const char *_name, const char *path) : device()
|
|
{
|
|
- strcpy(sysfs_path, path);
|
|
+ pt_strcpy(sysfs_path, path);
|
|
register_sysfs_path(sysfs_path);
|
|
- strcpy(name, _name);
|
|
- sprintf(humanname, "runtime-%s", _name);
|
|
+ pt_strcpy(name, _name);
|
|
+ snprintf(humanname, sizeof(humanname), "runtime-%s", _name);
|
|
|
|
index = get_param_index(humanname);
|
|
r_index = get_result_index(humanname);
|
|
@@ -141,7 +141,7 @@ double runtime_pmdevice::power_usage(struct result_bundle *result, struct parame
|
|
|
|
void runtime_pmdevice::set_human_name(char *_name)
|
|
{
|
|
- strcpy(humanname, _name);
|
|
+ pt_strcpy(humanname, _name);
|
|
}
|
|
|
|
|
|
diff --git a/src/devices/thinkpad-fan.cpp b/src/devices/thinkpad-fan.cpp
|
|
index d9bb026..8e2ce53 100644
|
|
--- a/src/devices/thinkpad-fan.cpp
|
|
+++ b/src/devices/thinkpad-fan.cpp
|
|
@@ -78,7 +78,7 @@ void create_thinkpad_fan(void)
|
|
char filename[PATH_MAX];
|
|
class thinkpad_fan *fan;
|
|
|
|
- strcpy(filename, "/sys/devices/platform/thinkpad_hwmon/fan1_input");
|
|
+ pt_strcpy(filename, "/sys/devices/platform/thinkpad_hwmon/fan1_input");
|
|
|
|
if (access(filename, R_OK) !=0)
|
|
return;
|
|
diff --git a/src/devices/thinkpad-light.cpp b/src/devices/thinkpad-light.cpp
|
|
index 945161a..d047ab3 100644
|
|
--- a/src/devices/thinkpad-light.cpp
|
|
+++ b/src/devices/thinkpad-light.cpp
|
|
@@ -76,7 +76,7 @@ void create_thinkpad_light(void)
|
|
char filename[PATH_MAX];
|
|
class thinkpad_light *light;
|
|
|
|
- strcpy(filename, "/sys/devices/platform/thinkpad_acpi/leds/tpacpi::thinklight/brightness");
|
|
+ pt_strcpy(filename, "/sys/devices/platform/thinkpad_acpi/leds/tpacpi::thinklight/brightness");
|
|
|
|
if (access(filename, R_OK) !=0)
|
|
return;
|
|
diff --git a/src/devices/usb.cpp b/src/devices/usb.cpp
|
|
index eb8c718..1f0e646 100644
|
|
--- a/src/devices/usb.cpp
|
|
+++ b/src/devices/usb.cpp
|
|
@@ -43,11 +43,11 @@ usbdevice::usbdevice(const char *_name, const char *path, const char *devid): de
|
|
char vendor[4096];
|
|
char product[4096];
|
|
|
|
- strcpy(sysfs_path, path);
|
|
+ pt_strcpy(sysfs_path, path);
|
|
register_sysfs_path(sysfs_path);
|
|
- strcpy(name, _name);
|
|
- strcpy(devname, devid);
|
|
- sprintf(humanname, _("USB device: %s"), pretty_print(devid, vendor, 4096));
|
|
+ pt_strcpy(name, _name);
|
|
+ pt_strcpy(devname, devid);
|
|
+ snprintf(humanname, sizeof(humanname), _("USB device: %s"), pretty_print(devid, vendor, 4096));
|
|
active_before = 0;
|
|
active_after = 0;
|
|
connected_before = 0;
|
|
diff --git a/src/devlist.cpp b/src/devlist.cpp
|
|
index bf48f23..e38a1ed 100644
|
|
--- a/src/devlist.cpp
|
|
+++ b/src/devlist.cpp
|
|
@@ -263,7 +263,7 @@ void register_devpower(const char *devstring, double power, class device *_dev)
|
|
|
|
if (!dev) {
|
|
dev = (struct devpower *)malloc(sizeof (struct devpower));
|
|
- strcpy(dev->device, devstring);
|
|
+ pt_strcpy(dev->device, devstring);
|
|
dev->power = 0.0;
|
|
devpower.push_back(dev);
|
|
}
|
|
@@ -333,13 +333,13 @@ void report_show_open_devices(void)
|
|
for (i = 0; i < target->size(); i++) {
|
|
proc[0] = 0;
|
|
if (strcmp(prev, (*target)[i]->comm) != 0)
|
|
- sprintf(proc, "%s", (*target)[i]->comm);
|
|
+ snprintf(proc, sizeof(proc), "%s", (*target)[i]->comm);
|
|
|
|
process_data[idx]=string(proc);
|
|
idx+=1;
|
|
process_data[idx]=string((*target)[i]->device);
|
|
idx+=1;
|
|
- sprintf(prev, "%s", (*target)[i]->comm);
|
|
+ snprintf(prev, sizeof(prev), "%s", (*target)[i]->comm);
|
|
}
|
|
|
|
/* Report Output */
|
|
diff --git a/src/lib.h b/src/lib.h
|
|
index 5c94271..6316590 100644
|
|
--- a/src/lib.h
|
|
+++ b/src/lib.h
|
|
@@ -28,6 +28,7 @@
|
|
#include <libintl.h>
|
|
#include <stdint.h>
|
|
#include <stdlib.h>
|
|
+#include <cstring>
|
|
|
|
/* Include only for Automake builds */
|
|
#ifdef HAVE_CONFIG_H
|
|
@@ -75,6 +76,12 @@ extern char *fmt_prefix(double n, char *buf);
|
|
extern char *pretty_print(const char *str, char *buf, int len);
|
|
extern int equals(double a, double b);
|
|
|
|
+template<size_t N> void pt_strcpy(char (&d)[N], const char *s)
|
|
+{
|
|
+ strncpy(d, s, N);
|
|
+ d[N-1] = '\0';
|
|
+}
|
|
+
|
|
typedef void (*callback)(const char*);
|
|
extern void process_directory(const char *d_name, callback fn);
|
|
extern int utf_ok;
|
|
diff --git a/src/measurement/acpi.cpp b/src/measurement/acpi.cpp
|
|
index a55109b..5630ca0 100644
|
|
--- a/src/measurement/acpi.cpp
|
|
+++ b/src/measurement/acpi.cpp
|
|
@@ -30,6 +30,7 @@
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <limits.h>
|
|
+#include "../lib.h"
|
|
|
|
using namespace std;
|
|
|
|
@@ -38,7 +39,7 @@ acpi_power_meter::acpi_power_meter(const char *acpi_name)
|
|
rate = 0.0;
|
|
capacity = 0.0;
|
|
voltage = 0.0;
|
|
- strncpy(battery_name, acpi_name, sizeof(battery_name));
|
|
+ pt_strcpy(battery_name, acpi_name);
|
|
}
|
|
|
|
/*
|
|
@@ -96,7 +97,7 @@ void acpi_power_meter::measure(void)
|
|
c = strchr(c, ' ');
|
|
if (c) {
|
|
c++;
|
|
- strcpy(rate_units, c);
|
|
+ pt_strcpy(rate_units, c);
|
|
} else {
|
|
_rate = 0;
|
|
strcpy(rate_units, "Unknown");
|
|
@@ -111,7 +112,7 @@ void acpi_power_meter::measure(void)
|
|
c = strchr(c, ' ');
|
|
if (c) {
|
|
c++;
|
|
- strcpy(capacity_units, c);
|
|
+ pt_strcpy(capacity_units, c);
|
|
} else {
|
|
_capacity = 0;
|
|
strcpy(capacity_units, "Unknown");
|
|
@@ -125,7 +126,7 @@ void acpi_power_meter::measure(void)
|
|
c = strchr(c, ' ');
|
|
if (c) {
|
|
c++;
|
|
- strcpy(voltage_units, c);
|
|
+ pt_strcpy(voltage_units, c);
|
|
} else {
|
|
_voltage = 0;
|
|
strcpy(voltage_units, "Unknown");
|
|
diff --git a/src/measurement/extech.cpp b/src/measurement/extech.cpp
|
|
index e014a5d..0a00921 100644
|
|
--- a/src/measurement/extech.cpp
|
|
+++ b/src/measurement/extech.cpp
|
|
@@ -54,6 +54,7 @@
|
|
|
|
#include "measurement.h"
|
|
#include "extech.h"
|
|
+#include "../lib.h"
|
|
#include <iostream>
|
|
#include <fstream>
|
|
#include <string.h>
|
|
@@ -268,7 +269,7 @@ static double extech_read(int fd)
|
|
extech_power_meter::extech_power_meter(const char *extech_name)
|
|
{
|
|
rate = 0.0;
|
|
- strncpy(dev_name, extech_name, sizeof(dev_name));
|
|
+ pt_strcpy(dev_name, extech_name);
|
|
int ret;
|
|
|
|
fd = open_device(dev_name);
|
|
diff --git a/src/measurement/sysfs.cpp b/src/measurement/sysfs.cpp
|
|
index 794f88f..15d4c10 100644
|
|
--- a/src/measurement/sysfs.cpp
|
|
+++ b/src/measurement/sysfs.cpp
|
|
@@ -33,7 +33,7 @@ sysfs_power_meter::sysfs_power_meter(const char *power_supply_name)
|
|
{
|
|
rate = 0.0;
|
|
capacity = 0.0;
|
|
- strncpy(name, power_supply_name, sizeof(name));
|
|
+ pt_strcpy(name, power_supply_name);
|
|
}
|
|
|
|
bool sysfs_power_meter::get_sysfs_attr(const char *attribute, int *value)
|
|
diff --git a/src/process/do_process.cpp b/src/process/do_process.cpp
|
|
index 91dc900..391cb7f 100644
|
|
--- a/src/process/do_process.cpp
|
|
+++ b/src/process/do_process.cpp
|
|
@@ -857,7 +857,7 @@ void process_update_display(void)
|
|
format_watts(all_power[i]->Witts(), power, 10);
|
|
if (!show_power)
|
|
strcpy(power, " ");
|
|
- sprintf(name, "%s", all_power[i]->type());
|
|
+ snprintf(name, sizeof(name), "%s", all_power[i]->type());
|
|
|
|
align_string(name, 14, 20);
|
|
|
|
@@ -867,18 +867,18 @@ void process_update_display(void)
|
|
usage[0] = 0;
|
|
if (all_power[i]->usage_units()) {
|
|
if (all_power[i]->usage() < 1000)
|
|
- sprintf(usage, "%5.1f%s", all_power[i]->usage(), all_power[i]->usage_units());
|
|
+ snprintf(usage, sizeof(usage), "%5.1f%s", all_power[i]->usage(), all_power[i]->usage_units());
|
|
else
|
|
- sprintf(usage, "%5i%s", (int)all_power[i]->usage(), all_power[i]->usage_units());
|
|
+ snprintf(usage, sizeof(usage), "%5i%s", (int)all_power[i]->usage(), all_power[i]->usage_units());
|
|
}
|
|
|
|
align_string(usage, 14, 20);
|
|
|
|
- sprintf(events, "%5.1f", all_power[i]->events());
|
|
+ snprintf(events, sizeof(events), "%5.1f", all_power[i]->events());
|
|
if (!all_power[i]->show_events())
|
|
events[0] = 0;
|
|
else if (all_power[i]->events() <= 0.3)
|
|
- sprintf(events, "%5.2f", all_power[i]->events());
|
|
+ snprintf(events, sizeof(events), "%5.2f", all_power[i]->events());
|
|
|
|
align_string(events, 12, 20);
|
|
wprintw(win, "%s %s %s %s %s\n", power, usage, events, name, pretty_print(all_power[i]->description(), descr, 128));
|
|
@@ -944,7 +944,7 @@ void report_process_update_display(void)
|
|
|
|
if (!show_power)
|
|
strcpy(power, " ");
|
|
- sprintf(name, "%s", all_power[i]->type());
|
|
+ snprintf(name, sizeof(name), "%s", all_power[i]->type());
|
|
|
|
if (strcmp(name, "Device") == 0)
|
|
continue;
|
|
@@ -956,17 +956,17 @@ void report_process_update_display(void)
|
|
usage[0] = 0;
|
|
if (all_power[i]->usage_units()) {
|
|
if (all_power[i]->usage() < 1000)
|
|
- sprintf(usage, "%5.1f%s", all_power[i]->usage(), all_power[i]->usage_units());
|
|
+ snprintf(usage, sizeof(usage), "%5.1f%s", all_power[i]->usage(), all_power[i]->usage_units());
|
|
else
|
|
- sprintf(usage, "%5i%s", (int)all_power[i]->usage(), all_power[i]->usage_units());
|
|
+ snprintf(usage, sizeof(usage), "%5i%s", (int)all_power[i]->usage(), all_power[i]->usage_units());
|
|
}
|
|
- sprintf(wakes, "%5.1f", all_power[i]->wake_ups / measurement_time);
|
|
+ snprintf(wakes, sizeof(wakes), "%5.1f", all_power[i]->wake_ups / measurement_time);
|
|
if (all_power[i]->wake_ups / measurement_time <= 0.3)
|
|
- sprintf(wakes, "%5.2f", all_power[i]->wake_ups / measurement_time);
|
|
- sprintf(gpus, "%5.1f", all_power[i]->gpu_ops / measurement_time);
|
|
- sprintf(disks, "%5.1f (%5.1f)", all_power[i]->hard_disk_hits / measurement_time,
|
|
+ snprintf(wakes, sizeof(wakes), "%5.2f", all_power[i]->wake_ups / measurement_time);
|
|
+ snprintf(gpus, sizeof(gpus), "%5.1f", all_power[i]->gpu_ops / measurement_time);
|
|
+ snprintf(disks, sizeof(disks), "%5.1f (%5.1f)", all_power[i]->hard_disk_hits / measurement_time,
|
|
all_power[i]->disk_hits / measurement_time);
|
|
- sprintf(xwakes, "%5.1f", all_power[i]->xwakes / measurement_time);
|
|
+ snprintf(xwakes, sizeof(xwakes), "%5.1f", all_power[i]->xwakes / measurement_time);
|
|
if (!all_power[i]->show_events()) {
|
|
wakes[0] = 0;
|
|
gpus[0] = 0;
|
|
@@ -1087,7 +1087,7 @@ void report_summary(void)
|
|
|
|
if (!show_power)
|
|
strcpy(power, " ");
|
|
- sprintf(name, "%s", all_power[i]->type());
|
|
+ snprintf(name, sizeof(name), "%s", all_power[i]->type());
|
|
|
|
if (i > total)
|
|
break;
|
|
@@ -1099,17 +1099,17 @@ void report_summary(void)
|
|
usage[0] = 0;
|
|
if (all_power[i]->usage_units()) {
|
|
if (all_power[i]->usage() < 1000)
|
|
- sprintf(usage, "%5.1f%s", all_power[i]->usage_summary(),
|
|
+ snprintf(usage, sizeof(usage), "%5.1f%s", all_power[i]->usage_summary(),
|
|
all_power[i]->usage_units_summary());
|
|
else
|
|
- sprintf(usage, "%5i%s", (int)all_power[i]->usage_summary(),
|
|
+ snprintf(usage, sizeof(usage), "%5i%s", (int)all_power[i]->usage_summary(),
|
|
all_power[i]->usage_units_summary());
|
|
}
|
|
- sprintf(events, "%5.1f", all_power[i]->events());
|
|
+ snprintf(events, sizeof(events), "%5.1f", all_power[i]->events());
|
|
if (!all_power[i]->show_events())
|
|
events[0] = 0;
|
|
else if (all_power[i]->events() <= 0.3)
|
|
- sprintf(events, "%5.2f", all_power[i]->events());
|
|
+ snprintf(events, sizeof(events), "%5.2f", all_power[i]->events());
|
|
|
|
summary_data[idx]=string(usage);
|
|
idx+=1;
|
|
diff --git a/src/process/interrupt.cpp b/src/process/interrupt.cpp
|
|
index 8ca756f..a6553b1 100644
|
|
--- a/src/process/interrupt.cpp
|
|
+++ b/src/process/interrupt.cpp
|
|
@@ -49,9 +49,9 @@ interrupt::interrupt(const char *_handler, int _number) : power_consumer()
|
|
char buf[128];
|
|
running_since = 0;
|
|
number = _number;
|
|
- strncpy(handler, _handler, 31);
|
|
+ pt_strcpy(handler, _handler);
|
|
raw_count = 0;
|
|
- sprintf(desc, "[%i] %s", number, pretty_print(handler, buf, 128));
|
|
+ snprintf(desc, sizeof(desc), "[%i] %s", number, pretty_print(handler, buf, 128));
|
|
}
|
|
|
|
|
|
@@ -98,7 +98,7 @@ class interrupt * find_create_interrupt(const char *_handler, int nr, int cpu)
|
|
unsigned int i;
|
|
class interrupt *new_irq;
|
|
|
|
- strcpy(handler, _handler);
|
|
+ pt_strcpy(handler, _handler);
|
|
if (strcmp(handler, "timer")==0)
|
|
sprintf(handler, "timer/%i", cpu);
|
|
|
|
diff --git a/src/process/process.cpp b/src/process/process.cpp
|
|
index 34dc68d..25de86f 100644
|
|
--- a/src/process/process.cpp
|
|
+++ b/src/process/process.cpp
|
|
@@ -33,6 +33,7 @@
|
|
|
|
#include <iostream>
|
|
#include <fstream>
|
|
+#include "../lib.h"
|
|
|
|
|
|
vector <class process *> all_processes;
|
|
@@ -89,7 +90,7 @@ process::process(const char *_comm, int _pid, int _tid) : power_consumer()
|
|
char line[4097];
|
|
ifstream file;
|
|
|
|
- strcpy(comm, _comm);
|
|
+ pt_strcpy(comm, _comm);
|
|
pid = _pid;
|
|
is_idle = 0;
|
|
running = 0;
|
|
@@ -120,7 +121,7 @@ process::process(const char *_comm, int _pid, int _tid) : power_consumer()
|
|
if (strncmp(_comm, "kondemand/", 10) == 0)
|
|
is_idle = 1;
|
|
|
|
- strcpy(desc, comm);
|
|
+ pt_strcpy(desc, comm);
|
|
|
|
sprintf(line, "/proc/%i/cmdline", _pid);
|
|
file.open(line, ios::binary);
|
|
@@ -130,7 +131,7 @@ process::process(const char *_comm, int _pid, int _tid) : power_consumer()
|
|
file.close();
|
|
if (strlen(line) < 1) {
|
|
is_kernel = 1;
|
|
- sprintf(desc, "[%s]", comm);
|
|
+ snprintf(desc, sizeof(desc), "[%s]", comm);
|
|
} else {
|
|
int sz = sizeof(desc) - 1;
|
|
cmdline_to_string(line);
|
|
diff --git a/src/process/processdevice.cpp b/src/process/processdevice.cpp
|
|
index 5bb269e..00f48c8 100644
|
|
--- a/src/process/processdevice.cpp
|
|
+++ b/src/process/processdevice.cpp
|
|
@@ -39,7 +39,7 @@ device_consumer::device_consumer(class device *dev) : power_consumer()
|
|
|
|
const char * device_consumer::description(void)
|
|
{
|
|
- sprintf(str, "%s", device->human_name());
|
|
+ snprintf(str, sizeof(str), "%s", device->human_name());
|
|
return str;
|
|
}
|
|
|
|
diff --git a/src/process/timer.cpp b/src/process/timer.cpp
|
|
index 1ca8c25..5d9d2f8 100644
|
|
--- a/src/process/timer.cpp
|
|
+++ b/src/process/timer.cpp
|
|
@@ -61,7 +61,7 @@ static bool timer_is_deferred(const char *handler)
|
|
|
|
timer::timer(unsigned long address) : power_consumer()
|
|
{
|
|
- strncpy(handler, kernel_function(address), 31);
|
|
+ pt_strcpy(handler, kernel_function(address));
|
|
raw_count = 0;
|
|
deferred = timer_is_deferred(handler);
|
|
}
|
|
@@ -125,7 +125,7 @@ const char * timer::description(void)
|
|
if (child_runtime > accumulated_runtime)
|
|
child_runtime = 0;
|
|
|
|
- sprintf(desc, "%s", handler);
|
|
+ snprintf(desc, sizeof(desc), "%s", handler);
|
|
return desc;
|
|
}
|
|
|
|
diff --git a/src/process/work.cpp b/src/process/work.cpp
|
|
index e62e5d3..1b5c71d 100644
|
|
--- a/src/process/work.cpp
|
|
+++ b/src/process/work.cpp
|
|
@@ -38,9 +38,9 @@ using namespace std;
|
|
|
|
work::work(unsigned long address) : power_consumer()
|
|
{
|
|
- strncpy(handler, kernel_function(address), 31);
|
|
+ pt_strcpy(handler, kernel_function(address));
|
|
raw_count = 0;
|
|
- sprintf(desc, "%s", handler);
|
|
+ snprintf(desc, sizeof(desc), "%s", handler);
|
|
}
|
|
|
|
|
|
diff --git a/src/tuning/bluetooth.cpp b/src/tuning/bluetooth.cpp
|
|
index 9be327e..dab46d7 100644
|
|
--- a/src/tuning/bluetooth.cpp
|
|
+++ b/src/tuning/bluetooth.cpp
|
|
@@ -46,8 +46,8 @@
|
|
bt_tunable::bt_tunable(void) : tunable("", 1.0, _("Good"), _("Bad"), _("Unknown"))
|
|
{
|
|
sprintf(desc, _("Bluetooth device interface status"));
|
|
- strcpy(toggle_bad, "/usr/sbin/hciconfig hci0 up &> /dev/null &");
|
|
- strcpy(toggle_good, "/usr/sbin/hciconfig hci0 down &> /dev/null");
|
|
+ pt_strcpy(toggle_bad, "/usr/sbin/hciconfig hci0 up &> /dev/null &");
|
|
+ pt_strcpy(toggle_good, "/usr/sbin/hciconfig hci0 down &> /dev/null");
|
|
}
|
|
|
|
|
|
diff --git a/src/tuning/ethernet.cpp b/src/tuning/ethernet.cpp
|
|
index da04711..5632b5f 100644
|
|
--- a/src/tuning/ethernet.cpp
|
|
+++ b/src/tuning/ethernet.cpp
|
|
@@ -50,7 +50,7 @@ extern void create_all_nics(callback fn);
|
|
ethernet_tunable::ethernet_tunable(const char *iface) : tunable("", 0.3, _("Good"), _("Bad"), _("Unknown"))
|
|
{
|
|
memset(interf, 0, sizeof(interf));
|
|
- strncpy(interf, iface, sizeof(interf));
|
|
+ pt_strcpy(interf, iface);
|
|
sprintf(desc, _("Wake-on-lan status for device %s"), iface);
|
|
snprintf(toggle_good, 4096, "ethtool -s %s wol d;", iface);
|
|
|
|
@@ -71,7 +71,7 @@ int ethernet_tunable::good_bad(void)
|
|
if (sock<0)
|
|
return result;
|
|
|
|
- strcpy(ifr.ifr_name, interf);
|
|
+ pt_strcpy(ifr.ifr_name, interf);
|
|
|
|
/* Check if the interf is up */
|
|
ret = ioctl(sock, SIOCGIFFLAGS, &ifr);
|
|
@@ -107,7 +107,7 @@ void ethernet_tunable::toggle(void)
|
|
if (sock<0)
|
|
return;
|
|
|
|
- strcpy(ifr.ifr_name, interf);
|
|
+ pt_strcpy(ifr.ifr_name, interf);
|
|
|
|
/* Check if the interface is up */
|
|
ret = ioctl(sock, SIOCGIFFLAGS, &ifr);
|
|
diff --git a/src/tuning/tunable.cpp b/src/tuning/tunable.cpp
|
|
index 83595ea..827b913 100644
|
|
--- a/src/tuning/tunable.cpp
|
|
+++ b/src/tuning/tunable.cpp
|
|
@@ -26,6 +26,7 @@
|
|
#include "tuning.h"
|
|
#include "tunable.h"
|
|
#include <string.h>
|
|
+#include "../lib.h"
|
|
|
|
vector<class tunable *> all_tunables;
|
|
vector<class tunable *> all_untunables;
|
|
@@ -34,10 +35,10 @@ vector<class tunable *> all_untunables;
|
|
tunable::tunable(const char *str, double _score, const char *good, const char *bad, const char *neutral)
|
|
{
|
|
score = _score;
|
|
- strcpy(desc, str);
|
|
- strcpy(good_string, good);
|
|
- strcpy(bad_string, bad);
|
|
- strcpy(neutral_string, neutral);
|
|
+ pt_strcpy(desc, str);
|
|
+ pt_strcpy(good_string, good);
|
|
+ pt_strcpy(bad_string, bad);
|
|
+ pt_strcpy(neutral_string, neutral);
|
|
}
|
|
|
|
|
|
@@ -45,7 +46,7 @@ tunable::tunable(void)
|
|
{
|
|
score = 0;
|
|
desc[0] = 0;
|
|
- strcpy(good_string, _("Good"));
|
|
- strcpy(bad_string, _("Bad"));
|
|
- strcpy(neutral_string, _("Unknown"));
|
|
+ pt_strcpy(good_string, _("Good"));
|
|
+ pt_strcpy(bad_string, _("Bad"));
|
|
+ pt_strcpy(neutral_string, _("Unknown"));
|
|
}
|
|
diff --git a/src/tuning/tuning.cpp b/src/tuning/tuning.cpp
|
|
index a701cdb..005bb4b 100644
|
|
--- a/src/tuning/tuning.cpp
|
|
+++ b/src/tuning/tuning.cpp
|
|
@@ -113,8 +113,8 @@ static void __tuning_update_display(int cursor_pos)
|
|
for (i = 0; i < all_tunables.size(); i++) {
|
|
char res[128];
|
|
char desc[4096];
|
|
- strcpy(res, all_tunables[i]->result_string());
|
|
- strcpy(desc, all_tunables[i]->description());
|
|
+ pt_strcpy(res, all_tunables[i]->result_string());
|
|
+ pt_strcpy(desc, all_tunables[i]->description());
|
|
while (strlen(res) < 12)
|
|
strcat(res, " ");
|
|
|
|
diff --git a/src/tuning/tuningsysfs.cpp b/src/tuning/tuningsysfs.cpp
|
|
index 811977d..7e78a52 100644
|
|
--- a/src/tuning/tuningsysfs.cpp
|
|
+++ b/src/tuning/tuningsysfs.cpp
|
|
@@ -44,8 +44,8 @@
|
|
|
|
sysfs_tunable::sysfs_tunable(const char *str, const char *_sysfs_path, const char *_target_content) : tunable(str, 1.0, _("Good"), _("Bad"), _("Unknown"))
|
|
{
|
|
- strcpy(sysfs_path, _sysfs_path);
|
|
- strcpy(target_value, _target_content);
|
|
+ pt_strcpy(sysfs_path, _sysfs_path);
|
|
+ pt_strcpy(target_value, _target_content);
|
|
bad_value[0] = 0;
|
|
snprintf(toggle_good, 4096, "echo '%s' > '%s';", target_value, sysfs_path);
|
|
snprintf(toggle_bad, 4096, "echo '%s' > '%s';", bad_value, sysfs_path);
|
|
@@ -69,7 +69,7 @@ int sysfs_tunable::good_bad(void)
|
|
if (strcmp(current_value, target_value) == 0)
|
|
return TUNE_GOOD;
|
|
|
|
- strcpy(bad_value, current_value);
|
|
+ pt_strcpy(bad_value, current_value);
|
|
return TUNE_BAD;
|
|
}
|
|
|
|
diff --git a/src/tuning/wifi.cpp b/src/tuning/wifi.cpp
|
|
index 2763b43..783948d 100644
|
|
--- a/src/tuning/wifi.cpp
|
|
+++ b/src/tuning/wifi.cpp
|
|
@@ -44,7 +44,7 @@ extern "C" {
|
|
|
|
wifi_tunable::wifi_tunable(const char *_iface) : tunable("", 1.5, _("Good"), _("Bad"), _("Unknown"))
|
|
{
|
|
- strcpy(iface, _iface);
|
|
+ pt_strcpy(iface, _iface);
|
|
sprintf(desc, _("Wireless Power Saving for interface %s"), iface);
|
|
|
|
snprintf(toggle_good, 4096, "iw dev %s set power_save on", iface);
|
|
diff --git a/traceevent/parse-filter.c b/traceevent/parse-filter.c
|
|
index 2500e75..ec308ae 100644
|
|
--- a/traceevent/parse-filter.c
|
|
+++ b/traceevent/parse-filter.c
|
|
@@ -1720,7 +1720,7 @@ static const char *get_field_str(struct filter_arg *arg, struct pevent_record *r
|
|
struct pevent *pevent;
|
|
unsigned long long addr;
|
|
const char *val = NULL;
|
|
- char hex[64];
|
|
+ static char hex[64];
|
|
|
|
/* If the field is not a string convert it */
|
|
if (arg->str.field->flags & FIELD_IS_STRING) {
|
|
|