Replace sprintf with snprintf
This commit is contained in:
@@ -882,22 +882,22 @@ gboolean read_execp(void *obj)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
const char *time_to_string(int seconds, char *buffer)
|
||||
const char *time_to_string(int seconds, char *buffer, size_t buffer_size)
|
||||
{
|
||||
if (seconds < 60) {
|
||||
sprintf(buffer, "%ds", seconds);
|
||||
snprintf(buffer, buffer_size, "%ds", seconds);
|
||||
} else if (seconds < 60 * 60) {
|
||||
int m = seconds / 60;
|
||||
seconds = seconds % 60;
|
||||
int s = seconds;
|
||||
sprintf(buffer, "%d:%ds", m, s);
|
||||
snprintf(buffer, buffer_size, "%d:%ds", m, s);
|
||||
} else {
|
||||
int h = seconds / (60 * 60);
|
||||
seconds = seconds % (60 * 60);
|
||||
int m = seconds / 60;
|
||||
seconds = seconds % 60;
|
||||
int s = seconds;
|
||||
sprintf(buffer, "%d:%d:%ds", h, m, s);
|
||||
snprintf(buffer, buffer_size, "%d:%d:%ds", h, m, s);
|
||||
}
|
||||
return buffer;
|
||||
}
|
||||
@@ -923,35 +923,39 @@ char *execp_get_tooltip(void *obj)
|
||||
if (execp->backend->last_update_finish_time) {
|
||||
// We updated at least once
|
||||
if (execp->backend->interval > 0) {
|
||||
sprintf(execp->backend->tooltip_text,
|
||||
"Last update finished %s ago (took %s). Next update starting in %s.",
|
||||
time_to_string((int)(now - execp->backend->last_update_finish_time), tmp_buf1),
|
||||
time_to_string((int)execp->backend->last_update_duration, tmp_buf2),
|
||||
time_to_string((int)(execp->backend->interval - (now - execp->backend->last_update_finish_time)),
|
||||
tmp_buf3));
|
||||
snprintf(execp->backend->tooltip_text,
|
||||
sizeof(execp->backend->tooltip_text),
|
||||
"Last update finished %s ago (took %s). Next update starting in %s.",
|
||||
time_to_string((int)(now - execp->backend->last_update_finish_time), tmp_buf1, sizeof(tmp_buf1)),
|
||||
time_to_string((int)execp->backend->last_update_duration, tmp_buf2, sizeof(tmp_buf2)),
|
||||
time_to_string((int)(execp->backend->interval - (now - execp->backend->last_update_finish_time)),
|
||||
tmp_buf3, sizeof(tmp_buf3)));
|
||||
} else {
|
||||
sprintf(execp->backend->tooltip_text,
|
||||
"Last update finished %s ago (took %s).",
|
||||
time_to_string((int)(now - execp->backend->last_update_finish_time), tmp_buf1),
|
||||
time_to_string((int)execp->backend->last_update_duration, tmp_buf2));
|
||||
snprintf(execp->backend->tooltip_text,
|
||||
sizeof(execp->backend->tooltip_text),
|
||||
"Last update finished %s ago (took %s).",
|
||||
time_to_string((int)(now - execp->backend->last_update_finish_time), tmp_buf1, sizeof(tmp_buf1)),
|
||||
time_to_string((int)execp->backend->last_update_duration, tmp_buf2, sizeof(tmp_buf2)));
|
||||
}
|
||||
} else {
|
||||
// we never requested an update
|
||||
sprintf(execp->backend->tooltip_text, "Never updated. No update scheduled.");
|
||||
snprintf(execp->backend->tooltip_text, sizeof(execp->backend->tooltip_text), "Never updated. No update scheduled.");
|
||||
}
|
||||
} else {
|
||||
// Currently executing command
|
||||
if (execp->backend->last_update_finish_time) {
|
||||
// we finished updating at least once
|
||||
sprintf(execp->backend->tooltip_text,
|
||||
"Last update finished %s ago. Update in progress (started %s ago).",
|
||||
time_to_string((int)(now - execp->backend->last_update_finish_time), tmp_buf1),
|
||||
time_to_string((int)(now - execp->backend->last_update_start_time), tmp_buf3));
|
||||
snprintf(execp->backend->tooltip_text,
|
||||
sizeof(execp->backend->tooltip_text),
|
||||
"Last update finished %s ago. Update in progress (started %s ago).",
|
||||
time_to_string((int)(now - execp->backend->last_update_finish_time), tmp_buf1, sizeof(tmp_buf1)),
|
||||
time_to_string((int)(now - execp->backend->last_update_start_time), tmp_buf3, sizeof(tmp_buf3)));
|
||||
} else {
|
||||
// we never finished an update
|
||||
sprintf(execp->backend->tooltip_text,
|
||||
"First update in progress (started %s seconds ago).",
|
||||
time_to_string((int)(now - execp->backend->last_update_start_time), tmp_buf1));
|
||||
snprintf(execp->backend->tooltip_text,
|
||||
sizeof(execp->backend->tooltip_text),
|
||||
"First update in progress (started %s seconds ago).",
|
||||
time_to_string((int)(now - execp->backend->last_update_start_time), tmp_buf1, sizeof(tmp_buf1)));
|
||||
}
|
||||
}
|
||||
return strdup(execp->backend->tooltip_text);
|
||||
|
||||
Reference in New Issue
Block a user