[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