Package: dvb-apps
Version: 1.1.1+rev1500-2
Severity: normal
File: /usr/bin/atsc_epg
Tags: upstream

Hi,

On ARM64—and presumably other architectures where the shell command 'getconf 
CHAR_MIN' prints '0'—the atsc_epg program is unusable. Even when it is invoked 
correctly, it always prints help information and exits indicating failure:
$ atsc_epg -f 539000000
usage: atsc_epg [-a <n>] -f <frequency> [-p <period>] [-m <modulation>] [-t] 
[-h]

The cause is an error in the option parsing code at 
util/atsc_epg/atsc_epg.c:1111 available on Salsa at
https://salsa.debian.org/vdr-team/linuxtv-dvb-apps/-/blob/master/util/atsc_epg/atsc_epg.c#L1111

When parsing the command-line options, the return value of getopt() is always 
stored in an object with type 'char' but getopt() always returns an 'int'. When 
all options have been read, getopt() returns -1, but when 'char' is an unsigned 
type, this gets implicitly converted to 255 and then the default case in the 
'switch' statement is invoked. I haven't tested it but changing the declaration 
of 'c' to 'int' should fix this.

The build logs don't seem very verbose; maybe it should be looked into if the 
right options are getting passed to the compiler. GCC usually catches issues 
like this easily.

Thanks,
John

Attachment: signature.asc
Description: This is a digitally signed message part

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to