From f8854707bb9134c20acf1d945851ea7751a3f501 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Wed, 6 Nov 2013 10:53:01 +0000 Subject: fix leak of utsname structure (coverity 1109881) --- javascript/jsapi/navigator.bnd | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) (limited to 'javascript') 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 %{ -- cgit v1.2.3