Skip to content
  • Rafaël Carré's avatar
    eit_print: avoid calling printf two times · 595b1b14
    Rafaël Carré authored
    The first printf also has this problem:
    if hour, min or sec is >= 100 we can overflow duration_str
    
    Also use %u for hours as it can be >= 100
    
    In file included from ./bitstream/dvb/si_print.h:35:0,
                     from dvb_print_si.c:42:
    dvb_print_si.c: In function ‘handle_section’:
    ./bitstream/dvb/si/eit_print.h:108:42: warning: ‘%02d’ directive writing between 2 and 3 bytes into a region of size between 2 and 4 [-Wformat-overflow=]
             sprintf(duration_str, "%02d:%02d:%02d", hour, min, sec);
                                              ^~~~
    ./bitstream/dvb/si/eit_print.h:108:31: note: directive argument in the range [0, 165]
             sprintf(duration_str, "%02d:%02d:%02d", hour, min, sec);
                                   ^~~~~~~~~~~~~~~~
    In file included from /usr/include/stdio.h:862:0,
                     from dvb_print_si.c:33:
    /usr/include/x86_64-linux-gnu/bits/stdio2.h:33:10: note: ‘__builtin___sprintf_chk’ output between 9 and 12 bytes into a destination of size 10
       return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           __bos (__s), __fmt, __va_arg_pack ());
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    595b1b14