diff options
author | Zhaofeng Li <hello@zhaofeng.li> | 2021-06-14 01:46:38 -0700 |
---|---|---|
committer | Zhaofeng Li <hello@zhaofeng.li> | 2021-07-13 10:50:18 -0700 |
commit | c2dcf154c748cb482fd8d2c3374eb1c259c5b05a (patch) | |
tree | 547d36d2a9a7a47aaf2c4029bce0595eab21b6d9 | |
parent | 51c8b89d0e98e9372b151caf93c862a0ec8e4dd4 (diff) | |
download | libproxy-git-c2dcf154c748cb482fd8d2c3374eb1c259c5b05a.tar.gz |
pacrunner: Ensure hostname is null-terminated
-rw-r--r-- | libproxy/modules/pacrunner_mozjs.cpp | 1 | ||||
-rw-r--r-- | libproxy/modules/pacrunner_natus.cpp | 4 | ||||
-rw-r--r-- | libproxy/modules/pacrunner_webkit.cpp | 4 |
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); |