NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

port-vax/41314: missing braces in ncr53c9x.c

>Number:         41314
>Category:       port-vax
>Synopsis:       missing braces in ncr53c9x.c
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-vax-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri May 01 02:50:00 +0000 2009
>Originator:     Kurt Lidl
>Release:        netbsd-5-RC4
cross-compile of netbsd-5-RC4 from solaris for a vax
I noticed the problem compiling for a vax, but it's
a MI driver.
I whacked up a gcc 4.4.1-prerelease to build the netbsd-vax
tree.  (I've not updated to netbsd-5 release, but will soon.)

Anyway, it complains thusly:

#   compile  GENERIC/ncr53c9x.o
/nbsd/vax-5/tools/bin/vax--netbsdelf-gcc -fno-pic -ffreestanding 
-fno-zero-initialized-in-bss -g -pipe -O2 -std=gnu99 -fno-strict-aliasing 
-Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith 
-Wmissing-prototypes -Wstrict-prototypes -Wswitch -Wshadow -Wcast-qual 
-Wwrite-strings -Wno-unreachable-code -Wno-sign-compare -Wno-pointer-sign 
-Wno-attributes -Werror -D_VAX_INLINE_ -I. -I/nbsd/nbsd-5/sys/../common/include 
-I/nbsd/nbsd-5/sys/arch -I/nbsd/nbsd-5/sys -nostdinc -DLKM -DMAXUSERS=8 
-I/nbsd/nbsd-5/sys/dist/ipf -c /nbsd/nbsd-5/sys/dev/ic/ncr53c9x.c
cc1: warnings being treated as errors
/nbsd/nbsd-5/sys/dev/ic/ncr53c9x.c: In function 'ncr53c9x_clear':
/nbsd/nbsd-5/sys/dev/ic/ncr53c9x.c:475: error: array subscript is above array 

Do the above compile.

Looking at the code, it appears that a statement was added after
a "for" line, but no set of braces was added too.  I think the following
patch resolves the problem.  Instead of just whacking one value
too far at the end of the array, the array is now nulled out

Index: sys/dev/ic/ncr53c9x.c
RCS file: /cvsroot/src/sys/dev/ic/ncr53c9x.c,v
retrieving revision 1.137
diff -u -3 -r1.137 ncr53c9x.c
--- sys/dev/ic/ncr53c9x.c       13 May 2008 22:16:27 -0000      1.137
+++ sys/dev/ic/ncr53c9x.c       30 Apr 2009 02:45:44 -0000
@@ -469,13 +469,14 @@
                                ecb->xs->error = result;
                                ncr53c9x_done(sc, ecb);
-                       for (i = 0; i < 256; i++)
+                       for (i = 0; i < 256; i++) {
                                ecb = li->queued[i];
                                if (ecb != NULL) {
                                        li->queued[i] = NULL;
                                        ecb->xs->error = result;
                                        ncr53c9x_done(sc, ecb);
+                       }
                        li->used = 0;

Home | Main Index | Thread Index | Old Index