KASSERT(val != 0) not triggering in linux_errno.c reading outside of array

xtouqh at hotmail.com xtouqh at hotmail.com
Tue Nov 3 10:17:58 UTC 2020


Hans Petter Selasky wrote:
> Hi,
> 
> Should:
> 
>          for (i = 1; i < sizeof(linux_errtbl); i++) {
> 
> Be:
> 
>          for (i = 1; i < sizeof(linux_errtbl)/sizeof(linux_errtbl[0]); 
> i++) {
> 
> 
> Or:
> 
>          for (i = 1; i < (int)nitems(linux_errtbl); i++) {

That's right, and I added the same comment in the review.  My question 
is different though -- with the issue present, KASSERT() should have 
triggered (there are 0 values with incorrect indexes, added printf() 
confirms that) exposing the bug, but it does not -- WHY? -- I just want 
to understand what's going on.


More information about the freebsd-hackers mailing list