vlc | branch: master | Filip Roséen <[email protected]> | Thu Feb 25 10:12:38 2016 +0100| [b1f9f8758d14e75fefcfd7cde1ee038f6106529f] | committer: Jean-Baptiste Kempf
realrtsp: minor refactor + bounds check of `rtsp_unschedule_all` and `rtsp_free_answers` Fixed bounds check in `rtsp_unschedule_field` and `rtsp_free_answers`. Since both functions share a common goal a (`static`) helper function has been introduced. Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b1f9f8758d14e75fefcfd7cde1ee038f6106529f --- modules/access/rtsp/rtsp.c | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/modules/access/rtsp/rtsp.c b/modules/access/rtsp/rtsp.c index 18e9966..1467fbf 100644 --- a/modules/access/rtsp/rtsp.c +++ b/modules/access/rtsp/rtsp.c @@ -695,23 +695,28 @@ void rtsp_unschedule_field( rtsp_client_t *rtsp, const char *needle ) } } +static void pp_free_helper_ (char **pptr, int max_length) { + int i; + + for (i = 0; i < max_length; ++i) { + if (pptr[i] == NULL) + break; + + free (pptr[i]); + pptr[i] = NULL; + } +} + /* * unschedule all fields */ void rtsp_unschedule_all( rtsp_client_t *rtsp ) { - char **ptr; - - if( !rtsp->p_private->scheduled ) return; - ptr = rtsp->p_private->scheduled; + if (rtsp->p_private == NULL) + return; - while( *ptr ) - { - free( *ptr ); - *ptr = NULL; - ptr++; - } + pp_free_helper_ (rtsp->p_private->scheduled, MAX_FIELDS); } /* * free answers @@ -719,15 +724,8 @@ void rtsp_unschedule_all( rtsp_client_t *rtsp ) void rtsp_free_answers( rtsp_client_t *rtsp ) { - char **answer; - - if( !rtsp->p_private->answers ) return; - answer = rtsp->p_private->answers; + if (rtsp->p_private == NULL) + return; - while( *answer ) - { - free( *answer ); - *answer = NULL; - answer++; - } + pp_free_helper_ (rtsp->p_private->answers, MAX_FIELDS); } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
