From marka@isc.org  Fri Feb 19 02:47:55 2010
Return-Path: <marka@isc.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id A4EE5106566B
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 19 Feb 2010 02:47:55 +0000 (UTC)
	(envelope-from marka@isc.org)
Received: from farside.isc.org (farside.isc.org [IPv6:2001:4f8:3:bb::5])
	by mx1.freebsd.org (Postfix) with ESMTP id 8BF2D8FC0C
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 19 Feb 2010 02:47:55 +0000 (UTC)
Received: from drugs.dv.isc.org (drugs.dv.isc.org [IPv6:2001:470:1f00:820:214:22ff:fed9:fbdc])
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(Client CN "drugs.dv.isc.org", Issuer "ISC CA" (not verified))
	by farside.isc.org (Postfix) with ESMTP id 9D27BE60AF
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 19 Feb 2010 02:47:54 +0000 (UTC)
	(envelope-from marka@isc.org)
Received: from drugs.dv.isc.org (localhost [127.0.0.1])
	by drugs.dv.isc.org (8.14.3/8.14.3) with ESMTP id o1J2lpNg067888
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 19 Feb 2010 13:47:51 +1100 (EST)
	(envelope-from marka@drugs.dv.isc.org)
Received: (from marka@localhost)
	by drugs.dv.isc.org (8.14.3/8.14.3/Submit) id o1J2lnts067887;
	Fri, 19 Feb 2010 13:47:49 +1100 (EST)
	(envelope-from marka)
Message-Id: <201002190247.o1J2lnts067887@drugs.dv.isc.org>
Date: Fri, 19 Feb 2010 13:47:49 +1100 (EST)
From: Mark Andrews <marka@isc.org>
Reply-To: Mark Andrews <marka@isc.org>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: multimedia/vlc-1.0.5_1,3 does not compile on 6.4-STABLE [patch]
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         144086
>Category:       ports
>Synopsis:       multimedia/vlc 1.0.5_1,3 does not compile on 6.4-STABLE [patch]
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    amdmi3
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Feb 19 02:50:00 UTC 2010
>Closed-Date:    Wed Apr 14 16:22:34 UTC 2010
>Last-Modified:  Wed Apr 14 16:30:01 UTC 2010
>Originator:     Mark Andrews
>Release:        FreeBSD 6.4-STABLE i386
>Organization:
ISC
>Environment:
System: FreeBSD drugs.dv.isc.org 6.4-STABLE FreeBSD 6.4-STABLE #32: Tue Oct 6 14:39:58 EST 2009 marka@drugs.dv.isc.org:/usr/obj/usr/src/sys/DRUGS i386


>Description:

	vlc calls a unprotected posix_memalign().

>How-To-Repeat:

	attempt to compile vlc.

>Fix:

	All p_buffers assignments are calloc's so free should
	be NULL with the exception of memory allocated here.

	Mark

--- modules/access/v4l2.c.orig	2009-12-21 04:43:39.000000000 +1100
+++ modules/access/v4l2.c	2010-02-19 13:29:51.000000000 +1100
@@ -492,6 +492,9 @@
 {
     void *  start;
     size_t  length;
+#if !defined (HAVE_POSIX_MEMALIGN) && !defined (HAVE_MEMALIGN)
+    void *  free;
+#endif
 };
 
 struct demux_sys_t
@@ -1038,7 +1041,12 @@
         switch( p_sys->io )
         {
         case IO_METHOD_READ:
-            free( p_sys->p_buffers[0].start );
+#if !defined (HAVE_POSIX_MEMALIGN) && !defined (HAVE_MEMALIGN)
+	    if (p_sys->p_buffers[0].free)
+                free( p_sys->p_buffers[0].free );
+	    else
+#endif
+                free( p_sys->p_buffers[0].start );
             break;
 
         case IO_METHOD_MMAP:
@@ -1054,7 +1062,12 @@
         case IO_METHOD_USERPTR:
             for( i = 0; i < p_sys->i_nbuffers; ++i )
             {
-               free( p_sys->p_buffers[i].start );
+#if !defined (HAVE_POSIX_MEMALIGN) && !defined (HAVE_MEMALIGN)
+	       if (p_sys->p_buffers[0].free)
+                   free( p_sys->p_buffers[i].free );
+	       else
+#endif
+                   free( p_sys->p_buffers[i].start );
             }
             break;
 
@@ -1600,10 +1613,31 @@
 
     for( p_sys->i_nbuffers = 0; p_sys->i_nbuffers < 4; ++p_sys->i_nbuffers )
     {
+#if defined (HAVE_POSIX_MEMALIGN)
         p_sys->p_buffers[p_sys->i_nbuffers].length = i_buffer_size;
         if( posix_memalign( &p_sys->p_buffers[p_sys->i_nbuffers].start,
                 /* boundary */ i_page_size, i_buffer_size ) )
             goto open_failed;
+#elif defined (HAVE_MEMALIGN)
+        p_sys->p_buffers[p_sys->i_nbuffers].length = i_buffer_size;
+	p_sys->p_buffers[p_sys->i_nbuffers].start =
+	    memalign ( /* boundary */ i_page_size, i_buffer_size );
+	if (p_sys->p_buffers[p_sys->i_nbuffers].start == NULL)
+	    goto open_failed;
+#else
+	unsigned char *ptr;
+	size_t align = i_page_size - 1;
+
+        p_sys->p_buffers[p_sys->i_nbuffers].length = i_buffer_size;
+	ptr = malloc (i_buffer_size + align);
+	if ( ptr == NULL )
+	    goto open_failed;
+
+	p_sys->p_buffers[p_sys->i_nbuffers].free = ptr;
+	ptr += align;
+	p_sys->p_buffers[p_sys->i_nbuffers].start =
+		(void *)(((uintptr_t)ptr) & ~align);
+#endif
     }
 
     return VLC_SUCCESS;

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->amdmi3 
Responsible-Changed-By: amdmi3 
Responsible-Changed-When: Tue Mar 9 16:59:09 UTC 2010 
Responsible-Changed-Why:  
I'll take it. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=144086 
State-Changed-From-To: open->feedback 
State-Changed-By: amdmi3 
State-Changed-When: Tue Mar 9 17:05:01 UTC 2010 
State-Changed-Why:  
Awaiting maintainer's feedback. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=144086 
State-Changed-From-To: feedback->closed 
State-Changed-By: amdmi3 
State-Changed-When: Wed Apr 14 16:22:33 UTC 2010 
State-Changed-Why:  
Committed. Thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=144086 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/144086: commit references a PR
Date: Wed, 14 Apr 2010 16:22:30 +0000 (UTC)

 amdmi3      2010-04-14 16:22:21 UTC
 
   FreeBSD ports repository
 
   Modified files:
     multimedia/vlc       Makefile 
   Added files:
     multimedia/vlc/files extra-patch-modules_access_v4l2.c 
   Log:
   - Fix build on 6.x
   
   PR:             144086
   Submitted by:   Mark Andrews <marka@isc.org>
   Approved by:    maintainer timeout
   
   Revision  Changes    Path
   1.216     +4 -0      ports/multimedia/vlc/Makefile
   1.1       +71 -0     ports/multimedia/vlc/files/extra-patch-modules_access_v4l2.c (new)
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 
>Unformatted:
