From fa9c577e55d7c845d0134acf13b10035b8e2b492 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Sun, 6 Jan 2013 21:46:08 +0100 Subject: [PATCH] linux: fix race in uv_resident_set_memory() uv_resident_set_memory() used a global buffer to read data into, which is a decidedly unsafe thing to do in a multi-threaded environment. --- src/unix/linux/linux-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/linux/linux-core.c b/src/unix/linux/linux-core.c index 0fec63d1..8276bf97 100644 --- a/src/unix/linux/linux-core.c +++ b/src/unix/linux/linux-core.c @@ -57,7 +57,6 @@ # define CLOCK_BOOTTIME 7 #endif -static char buf[MAXPATHLEN + 1]; static void* args_mem; static struct { @@ -382,6 +381,7 @@ uv_err_t uv_resident_set_memory(size_t* rss) { size_t page_size = getpagesize(); char *cbuf; int foundExeEnd; + char buf[PATH_MAX + 1]; f = fopen("/proc/self/stat", "r"); if (!f) return uv__new_sys_error(errno);