[Mplayer-cvslog] CVS: main/postproc rgb2rgb_template.c,1.54,1.55
Nick Kurshev
nickols_k at mail.ru
Mon Jul 1 09:06:16 CEST 2002
Hello, Michael!
On Sat, 29 Jun 2002 23:43:36 +0200 you wrote:
> Update of /cvsroot/mplayer/main/postproc
> In directory mail:/var/tmp.root/cvs-serv2867
>
> Modified Files:
> rgb2rgb_template.c
> Log Message:
> fixing memory overwrite bugs in the new converters
>
>
> Index: rgb2rgb_template.c
> ===================================================================
> RCS file: /cvsroot/mplayer/main/postproc/rgb2rgb_template.c,v
> retrieving revision 1.54
> retrieving revision 1.55
> diff -u -r1.54 -r1.55
> --- rgb2rgb_template.c 29 Jun 2002 21:26:15 -0000 1.54
> +++ rgb2rgb_template.c 29 Jun 2002 21:43:28 -0000 1.55
> @@ -256,13 +256,13 @@
> register const uint8_t* s=src;
> register uint8_t* d=dst;
> register const uint8_t *end;
> - uint8_t *mm_end;
> + const uint8_t *mm_end;
> end = s + src_size;
> #ifdef HAVE_MMX
> __asm __volatile(PREFETCH" %0"::"m"(*s));
> __asm __volatile("movq %0, %%mm7"::"m"(mask15rg));
> __asm __volatile("movq %0, %%mm6"::"m"(mask15b));
> - mm_end = (uint8_t*)((((unsigned long)end)/16)*16);
> + mm_end = end - 15;
IMHO it would be better to use something like this:
mm_end = end & ~15
else your code allow integer computing anyway (even if size of data is 256-byte
aligned). This code should prevent only accessing of last part of data which can't be fitted
into MMX registers and can cause segfault due array's index out of range
[snip]
Best regards! Nick
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/mplayer-cvslog/attachments/20020701/9bc37e43/attachment.pgp>
More information about the MPlayer-cvslog
mailing list