From owner-freebsd-ports-bugs@FreeBSD.ORG Fri Feb 19 02:50:01 2010 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 66AA01065672 for ; Fri, 19 Feb 2010 02:50:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 3B8C28FC0C for ; Fri, 19 Feb 2010 02:50:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id o1J2o1Q7055203 for ; Fri, 19 Feb 2010 02:50:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id o1J2o10F055202; Fri, 19 Feb 2010 02:50:01 GMT (envelope-from gnats) Resent-Date: Fri, 19 Feb 2010 02:50:01 GMT Resent-Message-Id: <201002190250.o1J2o10F055202@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Mark Andrews Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A4EE5106566B for ; 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 ; 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 ; 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 ; 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 To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: ports/144086: multimedia/vlc-1.0.5_1, 3 does not compile on 6.4-STABLE [patch] X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Mark Andrews List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Feb 2010 02:50:01 -0000 >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: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Feb 19 02:50:00 UTC 2010 >Closed-Date: >Last-Modified: >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: >Unformatted: