Date: Sun, 8 Nov 2009 11:57:21 +0100 (CET) From: Ulrich Spoerlein <uqs@spoerlein.net> To: FreeBSD-gnats-submit@FreeBSD.org Subject: bin/140384: chio(8) fix some harmless uninitialized argument warnings Message-ID: <200911081057.nA8AvLYb024254@coyote.spoerlein.net> Resent-Message-ID: <200911081100.nA8B07OV093016@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 140384 >Category: bin >Synopsis: chio(8) fix some harmless uninitialized argument warnings >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sun Nov 08 11:00:07 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Ulrich Spoerlein >Release: FreeBSD 7.2-STABLE i386 >Organization: >Environment: >Description: These were found by Clang/Static Analyzer - Removed three dead increments - More importantly, removes an uninitialized value read. While the zeroing of struct cesr upfront is enough and matches other parts of the code, I also removed the writing of a zero value into the struct, as it is unneeded. If this is deemed a superfluous optimization, just leave those assignments in. see also: https://www.spoerlein.net/scan-build/2009-11-07-1/report-wzs4FL.html#EndPath https://www.spoerlein.net/scan-build/2009-11-07-1/report-apJ1ME.html#EndPath https://www.spoerlein.net/scan-build/2009-11-07-1/report-Driys4.html#EndPath https://www.spoerlein.net/scan-build/2009-11-07-1/report-4kHXS5.html#EndPath >How-To-Repeat: >Fix: diff -r 4e4d5ca6b8da -r fdda05e4e407 bin/chio/chio.c --- a/bin/chio/chio.c Mon Nov 02 18:57:34 2009 +0100 +++ b/bin/chio/chio.c Sun Nov 08 09:58:32 2009 +0100 @@ -424,16 +424,13 @@ /* ARGSUSED */ static int -do_params(const char *cname, int argc, char **argv) +do_params(const char *cname, int argc, char **argv __unused) { struct changer_params data; int picker; /* No arguments to this command. */ - - ++argv; --argc; - - if (argc) { + if (argc > 1) { warnx("%s: no arguments expected", cname); goto usage; } @@ -467,15 +464,12 @@ /* ARGSUSED */ static int -do_getpicker(const char *cname, int argc, char **argv) +do_getpicker(const char *cname, int argc, char **argv __unused) { int picker; /* No arguments to this command. */ - - ++argv; --argc; - - if (argc) { + if (argc > 1) { warnx("%s: no arguments expected", cname); goto usage; } @@ -966,7 +960,6 @@ } else { element = parse_element_unit(*argv); } - ++argv; --argc; /* Get the status */ ces = get_element_status((unsigned int)type, (unsigned int)element, @@ -1072,10 +1065,10 @@ /* Read in the changer slots */ if (cp.cp_nslots > 0) { + (void) memset(&cesr, 0, sizeof(cesr)); cesr.cesr_element_type = CHET_ST; - cesr.cesr_element_base = 0; cesr.cesr_element_count = cp.cp_nslots; - cesr.cesr_flags |= CESR_VOLTAGS; + cesr.cesr_flags = CESR_VOLTAGS; cesr.cesr_element_status = ces; if (ioctl(changer_fd, CHIOGSTATUS, (char *)&cesr) == -1) { @@ -1087,12 +1080,10 @@ /* Read in the drive information */ if (cp.cp_ndrives > 0 ) { - (void) memset(&cesr, 0, sizeof(cesr)); cesr.cesr_element_type = CHET_DT; - cesr.cesr_element_base = 0; cesr.cesr_element_count = cp.cp_ndrives; - cesr.cesr_flags |= CESR_VOLTAGS; + cesr.cesr_flags = CESR_VOLTAGS; cesr.cesr_element_status = ces; if (ioctl(changer_fd, CHIOGSTATUS, (char *)&cesr) == -1) { @@ -1106,9 +1097,8 @@ if (cp.cp_nportals > 0 ) { (void) memset(&cesr, 0, sizeof(cesr)); cesr.cesr_element_type = CHET_IE; - cesr.cesr_element_base = 0; cesr.cesr_element_count = cp.cp_nportals; - cesr.cesr_flags |= CESR_VOLTAGS; + cesr.cesr_flags = CESR_VOLTAGS; cesr.cesr_element_status = ces; if (ioctl(changer_fd, CHIOGSTATUS, (char *)&cesr) == -1) { @@ -1122,9 +1112,8 @@ if (cp.cp_npickers > 0) { (void) memset(&cesr, 0, sizeof(cesr)); cesr.cesr_element_type = CHET_MT; - cesr.cesr_element_base = 0; cesr.cesr_element_count = cp.cp_npickers; - cesr.cesr_flags |= CESR_VOLTAGS; + cesr.cesr_flags = CESR_VOLTAGS; cesr.cesr_element_status = ces; if (ioctl(changer_fd, CHIOGSTATUS, (char *)&cesr) == -1) { --- chio.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200911081057.nA8AvLYb024254>