ports/151728: Crash using OSS when trying to rewind html5 video

Ilya A. Arhipov pa36ouHu4er at yandex.ru
Mon Oct 25 21:00:20 UTC 2010


>Number:         151728
>Category:       ports
>Synopsis:       Crash using OSS when trying to rewind html5 video
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Oct 25 21:00:19 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Ilya A. Arhipov
>Release:        FreeBSD 9.0-CURRENT
>Organization:
gorodkirov.ru
>Environment:
FreeBSD micro 9.0-CURRENT FreeBSD 9.0-CURRENT #3: Tue Oct 19 19:56:40 MSD 2010     root at micro:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
Crash using OSS when trying to rewind html5 video.
>How-To-Repeat:
1. open http://fosscasts.com/screencasts/6-System-Monitoring-With-Monit
2. start html5 video
3. try to rewind... crash :(

>Fix:


Patch attached with submission follows:

--- sydney_audio_oss.c.orig	2010-10-12 21:45:53.000000000 +0400
+++ sydney_audio_oss.c	2010-10-25 23:33:08.919096567 +0400
@@ -258,6 +258,7 @@
 int
 sa_stream_destroy(sa_stream_t *s) {
   int result = SA_SUCCESS;
+  pthread_t thread_id;
 
   if (s == NULL) {
     return SA_SUCCESS;
@@ -265,8 +266,10 @@
 
   pthread_mutex_lock(&s->mutex);
 
+  thread_id = s->thread_id;
+
   /*
-   * This causes the thread sending data to ALSA to stop
+   * This causes the thread sending data to OSS to stop
    */
   s->thread_id = 0;
 
@@ -281,6 +284,8 @@
 
   pthread_mutex_unlock(&s->mutex);
 
+  pthread_join(thread_id, NULL);
+
   /*
    * Release resources.
    */


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list