slock with DPMS and other tweaks
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

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.

FRIGN 3abbffa4 6a52a85a

+6 -14
+6 -14
slock.c
··· 60 60 61 61 #ifdef __linux__ 62 62 #include <fcntl.h> 63 - #include <linux/oom.h> 64 63 65 64 static void 66 65 dontkillme(void) 67 66 { 68 67 int fd; 69 - int length; 70 - char value[64]; 71 68 72 69 fd = open("/proc/self/oom_score_adj", O_WRONLY); 73 - if (fd < 0 && errno == ENOENT) 70 + if (fd < 0 && errno == ENOENT) { 74 71 return; 75 - 76 - /* convert OOM_SCORE_ADJ_MIN to string for writing */ 77 - length = snprintf(value, sizeof(value), "%d\n", OOM_SCORE_ADJ_MIN); 78 - 79 - /* bail on truncation */ 80 - if (length >= sizeof(value)) 81 - die("buffer too small\n"); 82 - 83 - if (fd < 0 || write(fd, value, length) != length || close(fd) != 0) 84 - die("cannot disable the out-of-memory killer for this process (make sure to suid or sgid slock)\n"); 72 + } 73 + if (fd < 0 || write(fd, "-1000\n", (sizeof("-1000\n") - 1)) != 74 + (sizeof("-1000\n") - 1) || close(fd) != 0) { 75 + die("can't tame the oom-killer. is suid or sgid set?\n"); 76 + } 85 77 } 86 78 #endif 87 79