Package: cdck Version: 0.5.2-2 Severity: grave Tags: patch Justification: renders package unusable
Hi, the sizes of the cdck 0.5.2-2 packages, as seen on packages.debian.org [1] are suspiciously small on arm, powerpc and s390. Looking at the buildd logs, those architectures get this warning during build: cdck_main.cpp: In function 'int main(int, char**)': cdck_main.cpp:36: warning: comparison is always true due to limited range of data type Line 36 in cdck_main.cpp is the while loop for option parsing: char ch; [...] while ((ch = getopt(argc, argv, "?hivd:po:V"))!=-1) { I believe that 'char ch' is unsigned rather than signed on the architectures listed above, and the compiler optimizes away most of the main program and the libraries because of this. The Arm Linux FAQ seems to confirm this [2]. Indeed, if I explicitly specify 'unsigned char ch' and test this on my i386, I get a smaller binary and the expected busy loop in option parsing. Based on this, I'm setting the severity to 'grave' although I haven't been able to test this on arm/powerpc/s390 myself. Trivial patch attached. [1] http://packages.debian.org/unstable/utils/cdck [2] http://www.arm.linux.org.uk/docs/faqs/signedchar.php Cheers, -- Niko Tyni [EMAIL PROTECTED]
--- src/cdck_main.cpp 2006/12/07 21:51:56 1.1 +++ src/cdck_main.cpp 2006/12/07 21:53:25 @@ -21,7 +21,7 @@ int main (int argc, char *argv[]) { - char ch; + signed char ch; char *program_name = (strchr(argv[0], '/') == NULL) ? argv[0] : (strrchr(argv[0], '/') + 1); bool verbose = false;