diff options
author | dvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-06-18 16:58:03 +0000 |
---|---|---|
committer | dvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-06-18 16:58:03 +0000 |
commit | 0740578e6df8e4cb4cb49a2550f5946ceaf0e509 (patch) | |
tree | 2bbf3d469c8e0fd61393b6e8d9c2abcfac0107ce /main | |
parent | c6e74d7f36371d508de5ec7ebcd838913c75ce1c (diff) |
Merged revisions 201678 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
........
r201678 | dvossel | 2009-06-18 11:37:42 -0500 (Thu, 18 Jun 2009) | 11 lines
fixes some memory leaks and redundant conditions
(closes issue #15269)
Reported by: contactmayankjain
Patches:
patch.txt uploaded by contactmayankjain (license 740)
memory_leak_stuff.trunk.diff uploaded by dvossel (license 671)
Tested by: contactmayankjain, dvossel
........
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@201682 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main')
-rw-r--r-- | main/ast_expr2.c | 1 | ||||
-rw-r--r-- | main/ast_expr2f.c | 5 | ||||
-rw-r--r-- | main/asterisk.c | 3 |
3 files changed, 4 insertions, 5 deletions
diff --git a/main/ast_expr2.c b/main/ast_expr2.c index b7b533e7a..037d19a6f 100644 --- a/main/ast_expr2.c +++ b/main/ast_expr2.c @@ -2397,6 +2397,7 @@ static void free_value (struct val *vp) { if (vp==NULL) { + free(vp); return; } if (vp->type == AST_EXPR_string || vp->type == AST_EXPR_numeric_string) diff --git a/main/ast_expr2f.c b/main/ast_expr2f.c index 0bd784b6c..12615ba5e 100644 --- a/main/ast_expr2f.c +++ b/main/ast_expr2f.c @@ -2373,7 +2373,7 @@ int ast_yyerror(const char *, YYLTYPE *, struct parse_io *); /* likewise */ void ast_yyfree(void *ptr, yyscan_t yyscanner) { - if (ptr) /* the normal generated ast_yyfree func just frees its first arg; + /* the normal generated ast_yyfree func just frees its first arg; this get complaints on some systems, as sometimes this arg is a nil ptr! It's usually not fatal, but is irritating! */ free( (char *) ptr ); @@ -2417,8 +2417,7 @@ int ast_expr(char *expr, char *buf, int length, struct ast_channel *chan) else buf[0] = 0; return_value = strlen(buf); - if (io.val->u.s) - free(io.val->u.s); + free(io.val->u.s); } free(io.val); } diff --git a/main/asterisk.c b/main/asterisk.c index b86587d33..95190e2cf 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -799,8 +799,7 @@ void ast_unregister_atexit(void (*func)(void)) AST_RWLIST_TRAVERSE_SAFE_END; AST_RWLIST_UNLOCK(&atexits); - if (ae) - free(ae); + free(ae); } /* Sending commands from consoles back to the daemon requires a terminating NULL */ |