[FFmpeg-devel] Array bug in aes.c
Michael Niedermayer
michaelni
Fri Jan 18 05:08:35 CET 2008
On Thu, Jan 17, 2008 at 10:34:28PM -0500, Rich Felker wrote:
> On Fri, Jan 18, 2008 at 03:21:16AM +0100, Michael Niedermayer wrote:
> > On Thu, Jan 17, 2008 at 02:16:19PM -0800, Mike Melanson wrote:
> > > This comes from my blog's comments:
> > > http://multimedia.cx/eggs/up-to-date-gcc/#comment-92872
> > >
> > > ================
> > > Well, at least one of those warnings is an actual bug:
> > > /tmp/fate/source/libavutil/aes.c:133: warning: array subscript is above
> > > array bounds
> > >
> > > In aes.c:133:
> > > if(!enc_multbl[0][sizeof(enc_multbl)/sizeof(enc_multbl[0][0])-1]){
> > >
> >
> > > I take it this was meant:
> > > if(!enc_multbl[0][sizeof(enc_multbl[0])/sizeof(enc_multbl[0][0])-1]){
> >
> > no, this would then be an actual bug
> >
> > how does one disable these warnings?
>
> The problem is that gcc is wrongly enforcing array subscript bounds
> for each dimension of the array rather than for the array as a whole.
>
> Arguably it would be better anyway (more expressive) to use:
>
> if(!enc_multbl[sizeof(enc_multbl)/sizeof(enc_multbl[0])-1][sizeof(enc_multbl[0])/sizeof(enc_multbl[0][0])-1]){
>
> but both are ugly to read. Using a preprocessor macro for the max
> values in each dimension would make the code a lot more legible, IMO.
why not
if(!(&enc_multbl)[1][0][-1]){
?
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Breaking DRM is a little like attempting to break through a door even
though the window is wide open and the only thing in the house is a bunch
of things you dont want and which you would get tomorrow for free anyway
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080118/1b2fade1/attachment.pgp>
More information about the ffmpeg-devel
mailing list