summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhaofeng Li <hello@zhaofeng.li>2021-06-14 01:46:38 -0700
committerZhaofeng Li <hello@zhaofeng.li>2021-07-13 10:50:18 -0700
commitc2dcf154c748cb482fd8d2c3374eb1c259c5b05a (patch)
tree547d36d2a9a7a47aaf2c4029bce0595eab21b6d9
parent51c8b89d0e98e9372b151caf93c862a0ec8e4dd4 (diff)
downloadlibproxy-git-c2dcf154c748cb482fd8d2c3374eb1c259c5b05a.tar.gz
pacrunner: Ensure hostname is null-terminated
-rw-r--r--libproxy/modules/pacrunner_mozjs.cpp1
-rw-r--r--libproxy/modules/pacrunner_natus.cpp4
-rw-r--r--libproxy/modules/pacrunner_webkit.cpp4
3 files changed, 7 insertions, 2 deletions
diff --git a/libproxy/modules/pacrunner_mozjs.cpp b/libproxy/modules/pacrunner_mozjs.cpp
index a8fb59a..129d4b5 100644
--- a/libproxy/modules/pacrunner_mozjs.cpp
+++ b/libproxy/modules/pacrunner_mozjs.cpp
@@ -93,6 +93,7 @@ static bool dnsResolve(JSContext *cx, unsigned argc, JS::Value *vp) {
static bool myIpAddress(JSContext *cx, unsigned argc, JS::Value *vp) {
JS::CallArgs argv=JS::CallArgsFromVp(argc,vp);
char *hostname = (char *) JS_malloc(cx, 1024);
+ hostname[1023] = '\0';
if (!gethostname(hostname, 1023)) {
JSString *myhost = JS_NewStringCopyN(cx, hostname, strlen(hostname));
diff --git a/libproxy/modules/pacrunner_natus.cpp b/libproxy/modules/pacrunner_natus.cpp
index 1505578..e1dc6c1 100644
--- a/libproxy/modules/pacrunner_natus.cpp
+++ b/libproxy/modules/pacrunner_natus.cpp
@@ -56,7 +56,9 @@ static Value dnsResolve(Value& ths, Value& fnc, vector<Value>& arg) {
static Value myIpAddress(Value& ths, Value& fnc, vector<Value>& arg) {
char hostname[1024];
- if (!gethostname(hostname, 1023)) {
+ hostname[sizeof(hostname) - 1] = '\0';
+
+ if (!gethostname(hostname, sizeof(hostname) - 1)) {
vector<Value> dnsargs;
dnsargs.push_back(ths.newString(hostname));
return dnsResolve(ths, fnc, dnsargs);
diff --git a/libproxy/modules/pacrunner_webkit.cpp b/libproxy/modules/pacrunner_webkit.cpp
index b79a9d6..d907806 100644
--- a/libproxy/modules/pacrunner_webkit.cpp
+++ b/libproxy/modules/pacrunner_webkit.cpp
@@ -86,7 +86,9 @@ static JSValueRef dnsResolve(JSContextRef ctx, JSObjectRef /*func*/, JSObjectRef
static JSValueRef myIpAddress(JSContextRef ctx, JSObjectRef func, JSObjectRef self, size_t /*argc*/, const JSValueRef[] /*argv*/, JSValueRef* /*exception*/)
{
char hostname[1024];
- if (!gethostname(hostname, 1023)) {
+ hostname[sizeof(hostname) - 1] = '\0';
+
+ if (!gethostname(hostname, sizeof(hostname) - 1)) {
JSStringRef str = JSStringCreateWithUTF8CString(hostname);
JSValueRef val = JSValueMakeString(ctx, str);
JSStringRelease(str);