/ fixes possibility for accessing of struct when null

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5896 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.2-netsec
Ben Kramer 21 years ago
parent 79392ea53b
commit 20c26996ef

@ -1149,10 +1149,15 @@ static inline int monitor_handle_notowned(struct vpb_pvt *p, VPB_EVENT *e)
} }
} else if (e->data == p->ring_timer_id) { } else if (e->data == p->ring_timer_id) {
/* We didnt get another ring in time! */ /* We didnt get another ring in time! */
if (p->owner){
if (p->owner->_state != AST_STATE_UP) { if (p->owner->_state != AST_STATE_UP) {
/* Assume caller has hung up */ /* Assume caller has hung up */
vpb_timer_stop(p->ring_timer); vpb_timer_stop(p->ring_timer);
} }
} else {
/* No owner any more, Assume caller has hung up */
vpb_timer_stop(p->ring_timer);
}
} }
break; break;
@ -2247,12 +2252,12 @@ static int vpb_write(struct ast_channel *ast, struct ast_frame *frame)
gettimeofday(&play_buf_time_finish,NULL); gettimeofday(&play_buf_time_finish,NULL);
if (play_buf_time_finish.tv_sec == play_buf_time_start.tv_sec){ if (play_buf_time_finish.tv_sec == play_buf_time_start.tv_sec){
p->play_buf_time=(int)((play_buf_time_finish.tv_usec-play_buf_time_start.tv_usec)/1000); p->play_buf_time=(int)((play_buf_time_finish.tv_usec-play_buf_time_start.tv_usec)/1000);
/* ast_log(LOG_DEBUG, "%s: vpb_write: Timing start(%d) finish(%d)\n", p->dev,play_buf_time_start.tv_usec,play_buf_time_finish.tv_usec); */ /* ast_log(LOG_DEBUG, "%s: vpb_write: Timing start(%d) finish(%d)\n", p->dev,play_buf_time_start.tv_usec,play_buf_time_finish.tv_usec); */
} }
else { else {
p->play_buf_time=(int)((play_buf_time_finish.tv_sec - play_buf_time_start.tv_sec)*100)+(int)((play_buf_time_finish.tv_usec-play_buf_time_start.tv_usec)/1000); p->play_buf_time=(int)((play_buf_time_finish.tv_sec - play_buf_time_start.tv_sec)*100)+(int)((play_buf_time_finish.tv_usec-play_buf_time_start.tv_usec)/1000);
} }
/* ast_log(LOG_DEBUG, "%s: vpb_write: Wrote data [%d](%d=>%s) to play_buf in [%d]ms..\n", p->dev,frame->datalen,fmt,ast2vpbformatname(frame->subclass),p->play_buf_time); */ /* ast_log(LOG_DEBUG, "%s: vpb_write: Wrote data [%d](%d=>%s) to play_buf in [%d]ms..\n", p->dev,frame->datalen,fmt,ast2vpbformatname(frame->subclass),p->play_buf_time); */
} }
else { else {
p->chuck_count++; p->chuck_count++;

Loading…
Cancel
Save