diff options
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/HPM.c | 27 | ||||
-rw-r--r-- | src/common/socket.c | 14 | ||||
-rw-r--r-- | src/common/timer.c | 1 |
3 files changed, 24 insertions, 18 deletions
diff --git a/src/common/HPM.c b/src/common/HPM.c index 51a595310..92b9702d4 100644 --- a/src/common/HPM.c +++ b/src/common/HPM.c @@ -844,12 +844,13 @@ void hpm_memdown(void) { /* this memory is handled outside of the server's memory manager and thus cleared after memory manager goes down */ - for( i = 0; i < HPM->fnamec; i++ ) { - free(HPM->fnames[i].name); - } - - if( HPM->fnames ) + if (HPM->fnames) + { + for( i = 0; i < HPM->fnamec; i++ ) { + free(HPM->fnames[i].name); + } free(HPM->fnames); + } } int hpm_arg_db_clear_sub(DBKey key, DBData *data, va_list args) { struct HPMArgData *a = DB->data2ptr(data); @@ -863,19 +864,21 @@ void hpm_final(void) { HPM->off = true; - for( i = 0; i < HPM->plugin_count; i++ ) { - HPM->unload(HPM->plugins[i]); - } - if( HPM->plugins ) + { + for( i = 0; i < HPM->plugin_count; i++ ) { + HPM->unload(HPM->plugins[i]); + } aFree(HPM->plugins); - - for( i = 0; i < HPM->symbol_count; i++ ) { - aFree(HPM->symbols[i]); } if( HPM->symbols ) + { + for( i = 0; i < HPM->symbol_count; i++ ) { + aFree(HPM->symbols[i]); + } aFree(HPM->symbols); + } for( i = 0; i < hpPHP_MAX; i++ ) { if( HPM->packets[i] ) diff --git a/src/common/socket.c b/src/common/socket.c index 09521c312..c0864c9b3 100644 --- a/src/common/socket.c +++ b/src/common/socket.c @@ -633,14 +633,16 @@ static void delete_session(int fd) aFree(session[fd]->wdata); if( session[fd]->session_data ) aFree(session[fd]->session_data); - for(i = 0; i < session[fd]->hdatac; i++) { - if( session[fd]->hdata[i]->flag.free ) { - aFree(session[fd]->hdata[i]->data); - } - aFree(session[fd]->hdata[i]); - } if( session[fd]->hdata ) + { + for(i = 0; i < session[fd]->hdatac; i++) { + if( session[fd]->hdata[i]->flag.free ) { + aFree(session[fd]->hdata[i]->data); + } + aFree(session[fd]->hdata[i]); + } aFree(session[fd]->hdata); + } aFree(session[fd]); session[fd] = NULL; } diff --git a/src/common/timer.c b/src/common/timer.c index f2bfa98b3..45dbb9f50 100644 --- a/src/common/timer.c +++ b/src/common/timer.c @@ -260,6 +260,7 @@ static int acquire_timer(void) { // check available space if( tid >= timer_data_num ) + // possible timer_data null pointer for (tid = timer_data_num; tid < timer_data_max && timer_data[tid].type; tid++); if (tid >= timer_data_num && tid >= timer_data_max) {// expand timer array |