kumquat-buildroot/package/nodejs/5.3.0/0005-Fix-crash-in-GetInterfaceAddresses.patch
Martin Bark 5bba3ca130 package/nodejs: fix support for uClibc-ng
Fix segmentation fault in node.js when using uClibc-ng.

This patch fixes bug #8296, see
https://bugs.busybox.net/show_bug.cgi?id=8296.

Signed-off-by: Martin Bark <martin@barkynet.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-12-23 17:51:07 +01:00

38 lines
1.3 KiB
Diff

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