X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Faccess%2Fdvb%2Fen50221.c;h=b2d899121367e73ea1776f5549da1e3ba6a0e6f7;hb=b694b642baea32dfa21ec9d771ef7295ac398d6d;hp=cf5a26ac8102611cfbe623c1c6aad61d63561bf3;hpb=cdc6a08d4c761e783ac2ff71ccd45a2f1a028416;p=vlc diff --git a/modules/access/dvb/en50221.c b/modules/access/dvb/en50221.c index cf5a26ac81..b2d8991213 100644 --- a/modules/access/dvb/en50221.c +++ b/modules/access/dvb/en50221.c @@ -65,7 +65,7 @@ # include "descriptors/dr.h" # include "psi.h" # include "demux.h" -# include "sdt.h" +# include "tables/sdt.h" #endif #ifdef ENABLE_HTTPD @@ -285,6 +285,8 @@ static int TPDURecv( access_t * p_access, uint8_t i_slot, uint8_t *pi_tag, if ( i_size < 5 ) { msg_Err( p_access, "cannot read from CAM device (%d:%m)", i_size ); + if( pi_size == NULL ) + free( p_data ); return VLC_EGENERIC; } @@ -292,6 +294,8 @@ static int TPDURecv( access_t * p_access, uint8_t i_slot, uint8_t *pi_tag, { msg_Err( p_access, "invalid read from CAM device (%d instead of %d)", p_data[1], i_tcid ); + if( pi_size == NULL ) + free( p_data ); return VLC_EGENERIC; } @@ -423,7 +427,7 @@ static void SessionOpen( access_t * p_access, uint8_t i_slot, if ( !p_sys->p_sessions[i_session_id - 1].i_resource_id ) break; } - if ( i_session_id == MAX_SESSIONS ) + if ( i_session_id > MAX_SESSIONS ) { msg_Err( p_access, "too many sessions !" ); return; @@ -1364,9 +1368,7 @@ static void ConditionalAccessOpen( access_t * p_access, int i_session_id ) p_sys->p_sessions[i_session_id - 1].pf_handle = ConditionalAccessHandle; p_sys->p_sessions[i_session_id - 1].pf_close = ConditionalAccessClose; - p_sys->p_sessions[i_session_id - 1].p_sys = malloc(sizeof(system_ids_t)); - memset( p_sys->p_sessions[i_session_id - 1].p_sys, 0, - sizeof(system_ids_t) ); + p_sys->p_sessions[i_session_id - 1].p_sys = calloc( 1, sizeof(system_ids_t) ); APDUSend( p_access, i_session_id, AOT_CA_INFO_ENQ, NULL, 0 ); } @@ -1496,8 +1498,7 @@ static void DateTimeOpen( access_t * p_access, int i_session_id ) p_sys->p_sessions[i_session_id - 1].pf_handle = DateTimeHandle; p_sys->p_sessions[i_session_id - 1].pf_manage = DateTimeManage; p_sys->p_sessions[i_session_id - 1].pf_close = DateTimeClose; - p_sys->p_sessions[i_session_id - 1].p_sys = malloc(sizeof(date_time_t)); - memset( p_sys->p_sessions[i_session_id - 1].p_sys, 0, sizeof(date_time_t) ); + p_sys->p_sessions[i_session_id - 1].p_sys = calloc( 1, sizeof(date_time_t) ); DateTimeSend( p_access, i_session_id ); } @@ -2425,7 +2426,7 @@ char *dvbsi_to_utf8( char *psz_instring, size_t i_length ) iconv_handle = vlc_iconv_open( "UTF-8", psz_encoding ); i_in = i_length - (psz_stringstart - psz_instring ); i_out = i_in * 6; - psz_outstring = psz_tmp = (char*)malloc( i_out * sizeof(char) + 1 ); + psz_outstring = psz_tmp = (char*)malloc( i_out + 1 ); vlc_iconv( iconv_handle, &psz_stringstart, &i_in, &psz_tmp, &i_out ); vlc_iconv_close( iconv_handle ); *psz_tmp = '\0';