diff options
Diffstat (limited to 'package/nodejs/5.3.0/0005-Fix-crash-in-GetInterfaceAddresses.patch')
-rw-r--r-- | package/nodejs/5.3.0/0005-Fix-crash-in-GetInterfaceAddresses.patch | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/package/nodejs/5.3.0/0005-Fix-crash-in-GetInterfaceAddresses.patch b/package/nodejs/5.3.0/0005-Fix-crash-in-GetInterfaceAddresses.patch new file mode 100644 index 0000000000..d96429070b --- /dev/null +++ b/package/nodejs/5.3.0/0005-Fix-crash-in-GetInterfaceAddresses.patch @@ -0,0 +1,37 @@ +From 839bd9d147b2c85fe70196c86dbdbed504762caf Mon Sep 17 00:00:00 2001 +From: "Bark, Martin" <martin.bark@te.com> +Date: Mon, 14 Dec 2015 13:27:51 +0000 +Subject: [PATCH 1/2] Fix crash in GetInterfaceAddresses + +If uv_interface_addresses() returns UV_ENOSYS then interfaces and count are +uninitialised. This can cause a segmentation fault inside +GetInterfaceAddresses when it tries to use the invalid interfaces[]. Fix +the issue by returning from GetInterfaceAddresses on the UV_ENOSYS error. + +This issue was observed when using uCLibc-ng version 1.0.9 because +uv_interface_addresses() in deps/uv/src/unix/linux-core.c incorrectly +undefines HAVE_IFADDRS_H. + +Submitted upstream, see https://github.com/nodejs/node/pull/4272 + +Signed-off-by: Martin Bark <martin@barkynet.com> +--- + src/node_os.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/node_os.cc b/src/node_os.cc +index a100090..92f53a9 100644 +--- a/src/node_os.cc ++++ b/src/node_os.cc +@@ -200,7 +200,7 @@ static void GetInterfaceAddresses(const FunctionCallbackInfo<Value>& args) { + ret = Object::New(env->isolate()); + + if (err == UV_ENOSYS) { +- args.GetReturnValue().Set(ret); ++ return args.GetReturnValue().Set(ret); + } else if (err) { + return env->ThrowUVException(err, "uv_interface_addresses"); + } +-- +2.6.2 + |