summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Delalande2014-12-12 08:39:07 +0100
committerRoberto E. Vargas Caballero2014-12-23 16:20:59 +0100
commit708b697ed77e1ba4e96399ed6cb0f73a37565321 (patch)
tree3d236db07cbed0967a03998980ba0309a050894c
parent09f5d98251469070b76f3911cc6a83d977871656 (diff)
downloadst-708b697ed77e1ba4e96399ed6cb0f73a37565321.tar.gz
st-708b697ed77e1ba4e96399ed6cb0f73a37565321.tar.xz
st-708b697ed77e1ba4e96399ed6cb0f73a37565321.zip
Fix crash due to invalid timespec given to pselect
If blinktimeout is set to a value greater than 1000, pselect will receive a timeout argument with tv_nsec greater than 1E9 (1 sec), and fail, making st crash. This patch just ensures that the timespec structure is correctly filled with a value properly decomposed between tv_sec and tv_nsec. Reported by JasonWoof on IRC. Thanks!
-rw-r--r--st.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/st.c b/st.c
index fc91334..db9a332 100644
--- a/st.c
+++ b/st.c
@@ -3922,6 +3922,9 @@ run(void) {
TIMEDIFF(now,
lastblink)));
}
+ drawtimeout.tv_sec = \
+ drawtimeout.tv_nsec / 1E9;
+ drawtimeout.tv_nsec %= (long)1E9;
} else {
tv = NULL;
}