Introduction
Introduction Statistics Contact Development Disclaimer Help
Simplify the oom-taming-function - slock - simple X display locker utility
git clone git://git.suckless.org/slock
Log
Files
Refs
README
LICENSE
---
commit 3abbffa4934a62146e995ee7c2cf3ba50991b4ad
parent 6a52a85a1ac87b29048863d599a8b0f0ee712482
Author: FRIGN <[email protected]>
Date: Sun, 14 Feb 2016 01:28:37 +0100
Simplify the oom-taming-function
There really is no need to source a defined variable from a linux
header. The OOM-rank ranges from -1000 to 1000, so we can safely
hardcode -1000, which is a sane thing to do given slock is suid and
we don't want to play around too much here anyway.
On another notice, let's not forget that this still is a shitty
heuristic. The OOM-killer still can kill us (thus I also changed
the wording in the error-message. We do not disable the OOM-killer,
we're just hiding.
Diffstat:
M slock.c | 20 ++++++--------------
1 file changed, 6 insertions(+), 14 deletions(-)
---
diff --git a/slock.c b/slock.c
@@ -60,28 +60,20 @@ die(const char *errstr, ...)
#ifdef __linux__
#include <fcntl.h>
-#include <linux/oom.h>
static void
dontkillme(void)
{
int fd;
- int length;
- char value[64];
fd = open("/proc/self/oom_score_adj", O_WRONLY);
- if (fd < 0 && errno == ENOENT)
+ if (fd < 0 && errno == ENOENT) {
return;
-
- /* convert OOM_SCORE_ADJ_MIN to string for writing */
- length = snprintf(value, sizeof(value), "%d\n", OOM_SCORE_ADJ_MIN);
-
- /* bail on truncation */
- if (length >= sizeof(value))
- die("buffer too small\n");
-
- if (fd < 0 || write(fd, value, length) != length || close(fd) != 0)
- die("cannot disable the out-of-memory killer for this process …
+ }
+ if (fd < 0 || write(fd, "-1000\n", (sizeof("-1000\n") - 1)) !=
+ (sizeof("-1000\n") - 1) || close(fd) != 0) {
+ die("can't tame the oom-killer. is suid or sgid set?\n");
+ }
}
#endif
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.