[dvblast-devel] segfault dvblastctl get_sdt (xml or normal)

Ibrahim Tachijian barhom at netsat.se
Wed Jul 18 00:31:04 CEST 2018


Works.

I made a pull-request on bitstream.
Unsure if videolan wants to apply this "hack" or fix it in a better way.

On Tue, Jul 17, 2018 at 11:50 PM Georgi Chorbadzhiyski <gf at unixsol.org>
wrote:

> On 17.07.18 14:11, Ibrahim Tachijian wrote:
> > Found a transponder on 28.2E that will segfault when running dvblastctl
> get_sdt
> > *Ran GDB and got the following output:
> > *
> >
> > /opt/streamer_startup/php/dvblast/dvblastctl -r /tmp/326.sock get_sdt
> > /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
> > [Thread debugging using libthread_db enabled]
> > Using host libthread_db library
> "/lib/x86_64-linux-gnu/libthread_db.so.1".
> > new SDT actual tsid=2094 version=10 onid=2
> >   * service sid=22601 eit_schedule eit_pf running=4
> >     - desc 48 service type=0x1 provider="BSkyB" service="ATN Bangla UK"
> >     - desc 49 country_availability available=1 country=GBR
> >     - desc 49 country_availability available=1 country=IRL
> >     - desc 5f private_data specifier=0x00000002
> >     - desc b2 unknown length=42
> value=1d0031df221efe534deede4d357182957eedaae3024d571832858d0cf2d6cd2c6ab8c16c191a7ef6e7b5
> >   * service sid=22602 eit_schedule eit_pf running=4
> >     - desc 48 service type=0x1 provider="BSkyB" service="CHSTV"
> >     - desc 49 country_availability available=1 country=GBR
> >     - desc 49 country_availability available=1 country=IRL
> >     - desc 5f private_data specifier=0x00000002
> >     - desc b2 unknown length=69
> value=1d0131df2ae1dccb7955c60a51eab8c11355c610f903de39a2ee4ebaed75647b6e8007fe566944755c608984a34bfb2ee4ebaed75646c6f76f269ab8c14abf76dcde5dfe95
> >   * service sid=22603 eit_schedule eit_pf running=4
> >     - desc 48 service type=0x1 provider="BSkyB" service="Ahlebait TV"
> >     - desc 49 country_availability available=1 country=GBR
> >     - desc 49 country_availability available=1 country=IRL
> >     - desc 5f private_data specifier=0x00000002
> >     - desc b2 unknown length=121
> value=1d0111df38af4fe12adaae3013ca1a755c614832a7f44da145af211d75daeac8eab87b6e85b0e475153e1aae303a9a6a7c93d5c60a51d8d571832858dc9d75daeac8eab8c1d7c2c6ab8c14a1369ab8c14abf76d07755c60841db594b737dc57a7f0956d571809d8d4f927d571822ee2bd3f84ab6ab8c04fb55
> >   * service sid=22604 eit_schedule eit_pf running=4
> >     - desc 48 service type=0x1 provider="BSkyB" service="Xpanded TV2"
> >     - desc 49 country_availability available=1 country=GBR
> >     - desc 49 country_availability available=1 country=IRL
> >     - desc 5f private_data specifier=0x00000002
> >     - desc b2 unknown length=140
> value=1d00313f2afb6355c605baae3024dccd7aae305cd5718516ab8c21f71b78f5718127a755c6027b84f0f0dd16cf15aae30b6d59a5b14b786ab8c21b0d571834d5c61b56dc0be606ab8c21f7097808637430eb35b997ab8c36ad86956d571846eab8c0b6c64acd355c610fbaaf422ba2af1629b6b1f52ae3052fd57182268641b73571834bff2cb5718348218a
> >   * service sid=22605 eit_schedule eit_pf running=4
> >     - desc 48 service type=0x1 provider="BSkyB" service="HUM EUROPE"
> >     - desc 49 country_availability available=1 country=GBR
> >     - desc 49 country_availability available=1 country=IRL
> >     - desc 5f private_data specifier=0x00000002
> >     - desc b2 unknown length=144
> value=1d00d1df2ab57627741577ac8215e82c6ab8c1b755c60d1aae3087d5718206aad5d89dd7f618ca06ab8c1170acc050697b1aae306887c8355c611baae3087d571807ee20597dc9d75daeac8d8d52497d91d5718346f76f269ab8c14abf76c391c653586ab8c14f55c60701630792cd02c60391c2c6e4ce055c60a51eab8c1f4355c6049aae305b06469f87238ca6b0ed
> >   * service sid=22606 eit_schedule eit_pf running=4
> >     - desc 48 service type=0x1 provider="BSkyB" service="TalkingPictures"
> >     - desc 49 country_availability available=1 country=GBR
> >     - desc 49 country_availability available=1 country=IRL
> >     - desc 5f private_data specifier=0x00000002
> >     - desc b2 unknown length=142
> value=1d00d038b3128faae308dd571843eaa5179801a5d1ccb5feab8c1a32651edacaff5718439656820c37837938632c37f8ebe1637275fa57c3196e4bfc75f0b185cd2055c60a51e155e5ad2f0d571809eab8c12b2b69a53b6eb7d5c60b9aae307ed5718346ab8c21f1497836ab8c093465f2de0da3fac355c608baae3042d5718126ab8c04f55c609d571846923daa
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > sdt_table_print (pf_print=0x55555555aea0 <psi_print>, print_opaque=0x0,
> pf_iconv=0x55555555c900 <psi_iconv>, iconv_opaque=0x0,
> i_print_type=PRINT_TEXT,
> >     pp_sections=0x555555773010) at
> /usr/local/include/bitstream/dvb/si/sdt_print.h:76
> > 76        while ((p_service = sdt_get_service(p_section, j)) != NULL) {
> > (gdb)
>
> The fix is the same as the last time. It is still just a hack but
> avoids the problem entirely:
>
> Apply to bitstream, 'make install', then recompile dvblast.
>
> diff --git a/dvb/si/sdt_print.h b/dvb/si/sdt_print.h
> index fcf9f28..dab5b84 100644
> --- a/dvb/si/sdt_print.h
> +++ b/dvb/si/sdt_print.h
> @@ -73,6 +73,9 @@ static inline void sdt_table_print(uint8_t **pp_sections,
>          uint8_t *p_service;
>          int j = 0;
>
> +       if (p_section == NULL)
> +           break;
> +
>          while ((p_service = sdt_get_service(p_section, j)) != NULL) {
>              j++;
>              switch (i_print_type) {
>
> --
> Georgi Chorbadzhiyski | https://georgi.unixsol.org/ |
> https://github.com/gfto/
>


-- 


*Ibrahim Tachijian*CEO Net Sat AB
Email: barhom at netsat.se
_________________________


*Net Sat AB*Langelandsgatan 8, 164 43 Kista, Sweden
Office: +46 (0)8 408 394 53
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/dvblast-devel/attachments/20180718/6e35804f/attachment-0001.html>


More information about the dvblast-devel mailing list