Hi,

I apologize if the following description is a bit vague, but I don't
really have any consistent details available at the moment.

I've had odd youtube segfaults on amd64 and debian unstable too,
starting with 0.8.2-something. I recently tried gnash-0.8.3-3 from
experimental and the problem still persisted. With both
mozilla-plugin-gnash and starting gnash from the command line.

Looking closer, the problem appears to be in server/asobj/NetStreamGst.cpp:

   556      case GST_MESSAGE_TAG:
   557      {
   558        GstTagList* taglist;
   559
   560        gst_message_parse_tag(message, &taglist);
...
   579        g_free(taglist);
   580        break;
   581      }

gst_message_parse_tag() seems to return a valid taglist: If you enable
DEBUG_METADATA, the dumped contents look sane to a casual observer.
Yet g_free(taglist) leads to glibc screaming about an invalid free()
call and an immediate segfault.

Replacing g_free(taglist) above with, for example,
gst_tag_list_free(taglist) (if for no other reason than that of it
looking plausible in this context) gets rid of the segfault and things
seem to work again.

Upstream has g_free() there too, so I'm having a hard time believing
this is the real problem. I'd expect more bug reports floating around
if that were the case :) Another thing is I know next to nothing about
gstreamer, so it may well be that replacing g_free() with a
"higher-level" gst_tag_list_free() ends up tripping a sanity check
somewhere, and no memory gets freed so there's no segfault but a leak
instead. Anyway, it works for me now.

I can provide further details on request, I was just wondering if
someone who knows more about gnash/gstreamer could shed some light on
what's going on, off-hand.

Thanks,

-J



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to