Index: pbx/pbx_config.c =================================================================== --- pbx/pbx_config.c (revision 199017) +++ pbx/pbx_config.c (working copy) @@ -451,8 +451,7 @@ ast_unlock_contexts(); error2: - if (exten) - free(exten); + free(exten); } else if (a->pos == 4) { /* 'dialplan remove extension EXT _X_' (priority) */ char *exten = NULL, *context, *cid, *p; struct ast_context *c; @@ -509,8 +508,7 @@ } ast_unlock_contexts(); error3: - if (exten) - free(exten); + free(exten); } return ret; } @@ -1138,8 +1136,7 @@ ret = strdup(ast_get_context_name(c)); } - if (ignorepat) - free(ignorepat); + free(ignorepat); ast_unlock_contexts(); return ret; } Index: channels/h323/ast_h323.cxx =================================================================== --- channels/h323/ast_h323.cxx (revision 199017) +++ channels/h323/ast_h323.cxx (working copy) @@ -572,8 +572,7 @@ { #ifdef H323_H450 /* Dispatcher will free out all registered handlers */ - if (h450dispatcher) - delete h450dispatcher; + delete h450dispatcher; h450dispatcher = new H450xDispatcher(*this); h4502handler = new H4502Handler(*this, *h450dispatcher); h4504handler = new MyH4504Handler(*this, *h450dispatcher); @@ -1988,7 +1987,7 @@ if (cap && cap->IsUsable(*this)) { lastcap++; lastcap = localCapabilities.SetCapability(0, lastcap, cap); - } else if (cap) + } else delete cap; /* Capability is not usable */ dtmfMode = dtmf_mode; @@ -2001,7 +2000,7 @@ cap = new H323_UserInputCapability(H323_UserInputCapability::BasicString); if (cap && cap->IsUsable(*this)) { lastcap = localCapabilities.SetCapability(0, lastcap, cap); - } else if (cap) + } else delete cap; /* Capability is not usable */ sendUserInputMode = SendUserInputAsString; } else { @@ -2011,8 +2010,7 @@ lastcap = localCapabilities.SetCapability(0, lastcap, cap); else { dtmfMode |= H323_DTMF_SIGNAL; - if (cap) - delete cap; /* Capability is not usable */ + delete cap; /* Capability is not usable */ } } if ((dtmfMode & H323_DTMF_CISCO) != 0) { @@ -2024,8 +2022,7 @@ dtmfMode |= H323_DTMF_SIGNAL; } else { dtmfMode |= H323_DTMF_SIGNAL; - if (cap) - delete cap; /* Capability is not usable */ + delete cap; /* Capability is not usable */ } } if ((dtmfMode & H323_DTMF_SIGNAL) != 0) { @@ -2033,7 +2030,7 @@ cap = new H323_UserInputCapability(H323_UserInputCapability::SignalToneH245); if (cap && cap->IsUsable(*this)) lastcap = localCapabilities.SetCapability(0, lastcap, cap); - else if (cap) + else delete cap; /* Capability is not usable */ } sendUserInputMode = SendUserInputAsTone; /* RFC2833 transmission handled at Asterisk level */ Index: channels/xpmr/xpmr.c =================================================================== --- channels/xpmr/xpmr.c (revision 199017) +++ channels/xpmr/xpmr.c (working copy) @@ -157,7 +157,7 @@ TRACEJ(2,(" source len = %i\n",slen)); pd=*dest; - if(pd) free(pd); + free(pd); pd=calloc(slen+1,1); memcpy(pd,src,slen); *dest=pd; Index: channels/misdn/isdn_lib.c =================================================================== --- channels/misdn/isdn_lib.c (revision 199017) +++ channels/misdn/isdn_lib.c (working copy) @@ -2341,6 +2341,8 @@ if (!rx || !tx) { cb_log(0,0,"Couldn't open files: %s\n",strerror(errno)); + fclose(rx); + fclose(tx); return ; } Index: apps/app_rpt.c =================================================================== --- apps/app_rpt.c (revision 199017) +++ apps/app_rpt.c (working copy) @@ -3937,7 +3937,7 @@ struct rpt *myrpt; struct rpt_link *l,*l1,linkbase; struct ast_channel *mychannel; -int id_malloc, vmajor, vminor, m; +int vmajor, vminor, m; char *p,*ct,*ct_copy,*ident, *nodename,*cp; time_t t; #ifdef NEW_ASTERISK @@ -3984,14 +3984,10 @@ ast_free(mytele); pthread_exit(NULL); } - else{ - id_malloc = 1; - } } else { ident = ""; - id_malloc = 0; } rpt_mutex_unlock(&myrpt->lock); @@ -4007,8 +4003,7 @@ ast_log(LOG_NOTICE,"Telemetry thread aborted at line %d, mode: %d\n",__LINE__, mytele->mode); /*@@@@@@@@@@@*/ rpt_mutex_unlock(&myrpt->lock); ast_free(nodename); - if(id_malloc) - ast_free(ident); + ast_free(ident); ast_free(mytele); pthread_exit(NULL); } @@ -4054,8 +4049,7 @@ rpt_mutex_unlock(&myrpt->lock); ast_log(LOG_NOTICE,"Telemetry thread aborted at line %d, mode: %d\n",__LINE__, mytele->mode); /*@@@@@@@@@@@*/ ast_free(nodename); - if(id_malloc) - ast_free(ident); + ast_free(ident); ast_free(mytele); ast_hangup(mychannel); pthread_exit(NULL); @@ -4249,8 +4243,7 @@ rpt_mutex_unlock(&myrpt->lock); ast_log(LOG_NOTICE,"Telemetry thread aborted at line %d, mode: %d\n",__LINE__, mytele->mode); /*@@@@@@@@@@@*/ ast_free(nodename); - if(id_malloc) - ast_free(ident); + ast_free(ident); ast_free(mytele); ast_hangup(mychannel); pthread_exit(NULL); @@ -4290,8 +4283,7 @@ rpt_mutex_unlock(&myrpt->lock); ast_log(LOG_NOTICE,"Telemetry thread aborted at line %d, mode: %d\n",__LINE__, mytele->mode); /*@@@@@@@@@@@*/ ast_free(nodename); - if(id_malloc) - ast_free(ident); + ast_free(ident); ast_free(mytele); ast_hangup(mychannel); pthread_exit(NULL); @@ -4813,8 +4805,7 @@ rpt_mutex_unlock(&myrpt->lock); ast_log(LOG_NOTICE,"Telemetry thread aborted at line %d, mode: %d\n",__LINE__, mytele->mode); /*@@@@@@@@@@@*/ ast_free(nodename); - if(id_malloc) - ast_free(ident); + ast_free(ident); ast_free(mytele); ast_hangup(mychannel); pthread_exit(NULL); @@ -5190,8 +5181,7 @@ myrpt->active_telem = NULL; rpt_mutex_unlock(&myrpt->lock); ast_free(nodename); - if(id_malloc) - ast_free(ident); + ast_free(ident); ast_free(mytele); ast_hangup(mychannel); #ifdef APP_RPT_LOCK_DEBUG Index: main/ast_expr2f.c =================================================================== --- main/ast_expr2f.c (revision 199017) +++ main/ast_expr2f.c (working copy) @@ -2379,7 +2379,7 @@ 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 ); @@ -2416,7 +2416,6 @@ else buf[0] = 0; return_value = strlen(buf); - if (io.val->u.s) free(io.val->u.s); } free(io.val); Index: main/ast_expr2.c =================================================================== --- main/ast_expr2.c (revision 199017) +++ main/ast_expr2.c (working copy) @@ -2415,6 +2415,7 @@ free_value (struct val *vp) { if (vp==NULL) { + free(vp); return; } if (vp->type == AST_EXPR_string || vp->type == AST_EXPR_numeric_string) Index: main/asterisk.c =================================================================== --- main/asterisk.c (revision 199017) +++ main/asterisk.c (working copy) @@ -941,8 +941,7 @@ 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 */ Index: res/res_config_ldap.c =================================================================== --- res/res_config_ldap.c (revision 199017) +++ res/res_config_ldap.c (working copy) @@ -1271,10 +1271,8 @@ ldap_err2string(result)); ast_mutex_unlock(&ldap_lock); - if (filter) - free(filter); - if (clean_basedn) - free(clean_basedn); + free(filter); + free(clean_basedn); ldap_msgfree(ldap_result_msg); ldap_mods_free(ldap_mods, 0); return -1; @@ -1297,10 +1295,8 @@ } ast_mutex_unlock(&ldap_lock); - if (filter) - free(filter); - if (clean_basedn) - free(clean_basedn); + free(filter); + free(clean_basedn); ldap_msgfree(ldap_result_msg); ldap_mods_free(ldap_mods, 0); return num_entries; @@ -1458,10 +1454,8 @@ ldap_err2string(result)); ast_mutex_unlock(&ldap_lock); - if (filter) - free(filter); - if (clean_basedn) - free(clean_basedn); + free(filter); + free(clean_basedn); ldap_msgfree(ldap_result_msg); ldap_mods_free(ldap_mods, 0); return -1; Index: res/ael/ael_lex.c =================================================================== --- res/ael/ael_lex.c (revision 199017) +++ res/ael/ael_lex.c (working copy) @@ -3221,8 +3221,7 @@ void ael_yyfree(void *ptr, yyscan_t yyscanner) { - if (ptr) - free( (char*) ptr ); + free( (char*) ptr ); } static int pbcpop(char x) @@ -3361,8 +3360,7 @@ *errors = 1; return 0; } - if (my_file) - free(my_file); + free(my_file); my_file = strdup(filename); stat(filename, &stats); buffer = (char*)malloc(stats.st_size+2); Index: utils/ael_main.c =================================================================== --- utils/ael_main.c (revision 199017) +++ utils/ael_main.c (working copy) @@ -299,8 +299,7 @@ } /* since add_extension2 is responsible for the malloc'd data stuff */ - if( data ) - free(data); + free(data); return 0; } Index: utils/extconf.c =================================================================== --- utils/extconf.c (revision 199017) +++ utils/extconf.c (working copy) @@ -2993,8 +2993,7 @@ static void ast_var_delete(struct ast_var_t *var) { - if (var) - free(var); + free(var); } Index: utils/conf2ael.c =================================================================== --- utils/conf2ael.c (revision 199017) +++ utils/conf2ael.c (working copy) @@ -483,6 +483,7 @@ ast_log(LOG_ERROR,"No day of week spec attached to include!\n"); } } + free(all); } tmpi = tmpi->next; } Index: utils/stereorize.c =================================================================== --- utils/stereorize.c (revision 199017) +++ utils/stereorize.c (working copy) @@ -156,4 +156,7 @@ } } /* That was an endless loop. This point is never reached. */ + free(leftsample); + free(rightsample); + free(stereosample); } Index: codecs/gsm/src/gsm_destroy.c =================================================================== --- codecs/gsm/src/gsm_destroy.c (revision 199017) +++ codecs/gsm/src/gsm_destroy.c (working copy) @@ -22,5 +22,5 @@ void gsm_destroy P1((S), gsm S) { - if (S) free((char *)S); + free((char *)S); }