kde-core-devel@kde.org
[Top] [All Lists]

Re: Suspicous code in kdelibs-3.5.2

Subject: Re: Suspicous code in kdelibs-3.5.2
From: Christoph Bartoschek
Date: Wed, 5 Apr 2006 21:16:41 +0200
Am Mittwoch, 5. April 2006 21:01 schrieb Kuba Ober:
> > I guess you mean bm[29][0], because bm[29] = 1 gives an compiler
> > error:
> >
> > No. The 15th element in the second row would be bm[0][29]
> > For an array[16][16] the position bm[i][j] is equal to *(bm +
> > i*16+j)
> > Here code that shows the fact:
>
> That code shows that this is what the implementation does. It does not show
> (it cannot!) that this is what the C++ standard mandates. So it's a fact
> for the particular implementation, and that's the extent of what you've
> shown.

The code shows that there is an implementation where bm[29][0] accesses memory 
beyond the array bounds.

However the standard mandates in 8.3.4 as pointed out by  Stefan Teleman that 
bm[29][0] is indeed an access after the array bounds. An

int arr[10][5]

is an array of 10 arrays of 5 ints. The first int after this array can be 
accessed by arr[10][0];

The position is calculated as  (arr +  10* sizeof (int[5])) + 0 * sizeof(int).

Christoph

<Prev in Thread] Current Thread [Next in Thread>