Introduction
Introduction Statistics Contact Development Disclaimer Help
Slightly safer OOM killer disablement in linux - slock - simple X display locke…
git clone git://git.suckless.org/slock
Log
Files
Refs
README
LICENSE
---
commit 0edbd2e0164a8c6cbad415e38083469041f29996
parent 754195f8d75586e23d1cc69cad00710802e0cb5d
Author: David Phillips <[email protected]>
Date: Fri, 19 Jun 2015 23:42:15 +1200
Slightly safer OOM killer disablement in linux
Diffstat:
M slock.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
---
diff --git a/slock.c b/slock.c
@@ -60,16 +60,27 @@ 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)
return;
- if (fd < 0 || write(fd, "-1000\n", 6) != 6 || close(fd) != 0)
+
+ /* 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\…
}
#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.