On Fri, Jun 19, 2015 at 11:42:15PM +1200, David Phillips wrote:
> Resubmitting after talking with the guys in IRC, and after noticing
> that whitespace got messed with in my original patch.
> 
> -- 
> Four word witty remark

> diff --git a/slock.c b/slock.c
> index d6053af..b3bee92 100644
> --- 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\n");
>  }
>  #endif

Looks good to me.

Reply via email to