summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2013-11-06 10:53:01 +0000
committerVincent Sanders <vince@netsurf-browser.org>2013-11-06 10:53:01 +0000
commitf8854707bb9134c20acf1d945851ea7751a3f501 (patch)
tree958254956b9927be566fa1f655a4524442f9158d
parent8702eedf6787982803cd578a3d2fb9bc416d1931 (diff)
downloadnetsurf-f8854707bb9134c20acf1d945851ea7751a3f501.tar.gz
netsurf-f8854707bb9134c20acf1d945851ea7751a3f501.tar.bz2
fix leak of utsname structure (coverity 1109881)
-rw-r--r--javascript/jsapi/navigator.bnd35
1 files changed, 19 insertions, 16 deletions
diff --git a/javascript/jsapi/navigator.bnd b/javascript/jsapi/navigator.bnd
index 5a0bb395b..94be63687 100644
--- a/javascript/jsapi/navigator.bnd
+++ b/javascript/jsapi/navigator.bnd
@@ -95,22 +95,25 @@ getter language %{
%}
getter platform %{
- struct utsname *cutsname;
-
- cutsname = malloc(sizeof(struct utsname));
-
- if ((cutsname != NULL) && (uname(cutsname) >= 0)) {
- char *platstr;
- int platstrlen;
-
- platstrlen = strlen(cutsname->sysname) + strlen(cutsname->machine) + 2;
- platstr = malloc(platstrlen);
- if (platstr != NULL) {
- snprintf(platstr, platstrlen, "%s %s", cutsname->sysname, cutsname->machine);
- jsret = JS_NewStringCopyN(cx, platstr, platstrlen - 1);
- free(platstr);
- }
- }
+ struct utsname *cutsname;
+
+ cutsname = malloc(sizeof(struct utsname));
+
+ if (cutsname != NULL) {
+ if (uname(cutsname) >= 0) {
+ char *platstr;
+ int platstrlen;
+
+ platstrlen = strlen(cutsname->sysname) + strlen(cutsname->machine) + 2;
+ platstr = malloc(platstrlen);
+ if (platstr != NULL) {
+ snprintf(platstr, platstrlen, "%s %s", cutsname->sysname, cutsname->machine);
+ jsret = JS_NewStringCopyN(cx, platstr, platstrlen - 1);
+ free(platstr);
+ }
+ }
+ free(cutsname);
+ }
%}
getter userAgent %{