Package: xine-ui
Version: 0.99.3-1
Severity: normal

The "mrl play" network command segfaults if used when xine first
starts up.  I'll append a stack trace.

The segfault is caused by the dereference of gGui->playlist.mmk in the
call to gui_set_current_mmk(), as it is NULL.  Fixing this in the obvious
manner (

--- network.c.~1~       2004-08-24 16:06:26.000000000 -0400
+++ network.c   2005-05-16 07:38:46.000000000 -0400
@@ -1873,7 +1873,8 @@
          xine_stop(gGui->stream);
          gGui->ignore_next = 0;
        }
-       gui_set_current_mmk(gGui->playlist.mmk[gGui->playlist.num - 1]);
+       if (gGui->playlist.mmk)
+         gui_set_current_mmk(gGui->playlist.mmk[gGui->playlist.num - 1]);
        if(!(xine_open(gGui->stream, gGui->mmk.mrl) 
             && xine_play (gGui->stream, 0, gGui->mmk.start))) {
          handle_xine_error(client_info);
            
) doesn't fix the problem entirely, though.  Sometimes when I use "mrl
play" with an empty playlist after applying this patch, I get this
strange error:

    $ telnet jones xinectl
    Trying 192.168.9.66...
    Connected to jones.argon.org.
    Escape character is '^]'.
    jones.argon.org xine-ui 0.99.3 remote server. Nice to meet you.
    mrl play /tmp/bugs.avi
    playlist delete all
    mrl play /tmp/jerry.avi
    xine engine error:
    There is no available input plugin available to handle 'There is no mrl.'.
    exit
    Connection closed by foreign host.
    $ _

There's an accompanying popup on the screen ("The specified file or mrl
is not found. Please check it twice. (There is no mrl.)").  The real MRL
(jerry.avi) does play in this case.

Here's the stack trace for the unpatched version.

(gdb) where
#0  0x08079ad2 in do_mrl (cmd=0x8105b70, client_info=0x8dea1c0)
    at network.c:1876
#1  0x0807bf38 in handle_client_command (client_info=0x8dea1c0)
    at network.c:2841
#2  0x0807c05f in client_thread (data=0x8dea1c0) at network.c:2888
#3  0xb7ebdb63 in start_thread () from /lib/tls/libpthread.so.0
#4  0xb7bb118a in clone () from /lib/tls/libc.so.6
(gdb) p *gGui
$1 = {vo_port = 0x8175730, vo_none = 0x8741b90, ao_none = 0x8b4f290,
  tvout = 0x0, post_elements = 0x0, post_elements_num = 0, post_enable = 1,
  deinterlace_plugin = 0x86af2f8 
"tvtime:method=LinearBlend,cheap_mode=1,pulldown=0,use_progressive_frame_flag=1",
 deinterlace_elements = 0x86af740,
  deinterlace_elements_num = 1, deinterlace_enable = 0, video_settings = {
    hue = 0, brightness = 35554, saturation = 27482, contrast = 32896},
  ao_port = 0x858fce0, stream = 0x87129a8, stream_length = {pos = 65535,
    time = 0, length = 0}, subtitle_autoload = 1, spu_stream = 0x8d2bcb0,
  xine = 0x811a2d0, verbosity = 0, broadcast_port = 0, xe_mutex = {
    __m_reserved = 0, __m_count = 0, __m_owner = 0x0, __m_kind = 0,
    __m_lock = {__status = 0, __spinlock = 0}}, new_pos = -1,
  event_queue = 0x8cb6310, smart_mode = 1, visual_anim = {stream = 0x8cfa3a0,
    event_queue = 0x8d2bbb0, running = 0, current = 0, enabled = 1,
    mrls = 0x8115d68, num_mrls = 1, post_plugin_num = 0,
    post_output = 0x86af918, post_changed = 0}, osd = {enabled = 1,
    use_unscaled = 1, unscaled_available = 2, timeout = 3, sinfo = {osd = {
        0x8c6e020, 0x0}, visible = 0, have_text = 0, x = 0, y = 0, w = 0,
      h = 0}, bar = {osd = {0x8ca8740, 0x8cb2ea8}, visible = 0, have_text = 0,
      x = 0, y = 0, w = 0, h = 0}, status = {osd = {0x8cb5688, 0x0},
      visible = 0, have_text = 0, x = 0, y = 0, w = 0, h = 0}, info = {osd = {
        0x8cb5c28, 0x0}, visible = 0, have_text = 0, x = 0, y = 0, w = 0,
      h = 0}}, configfile = 0x811a2b0 "/home/roderick/.xine/config",
  experience_level = 0,
  logo_mrl = 0x8cb62b0 "file:/usr/share/xine/skins/xine-ui_logo.mpv",
  logo_mode = 1, logo_has_changed = 0, display_logo = 1, actions_on_start = {
    ACTID_TOGGLE_FULLSCREEN, ACTID_TOGGLE_VISIBLITY,
    ACTID_NOKEY <repeats 30 times>}, autoscan_plugin = 0x0,
  display = 0x811e4a8, screen = 0, depth = 16, visual = 0x811f790, black = {
    pixel = 0, red = 0, green = 0, blue = 0, flags = 0 '\0', pad = 0 '\0'},
  icon = 4194307, colormap = 32, pixel_aspect = 1.0010162601626016,
  prefered_visual_class = -1, prefered_visual_id = 0, install_colormap = 0,
  skin_config = 0x81236f8,
  skin_server_url = 0x8120410 "http://xine.sourceforge.net/skins/skins.slx";,
  imlib_data = 0x8120d00, video_display = 0x811e4a8, video_screen = 0,
  video_window = 4195301, cursor_visible = 1, cursor_grabbed = 0,
  panel_window = 4195270, debug_level = 0, is_display_mrl = 0,
  mrl_overrided = 0, mmk = {ident = 0x8133c30 "xine-ui version 0.99.3",
    mrl = 0x8134180 "There is no mrl.", sub = 0x0, start = 0, end = -1,
    av_offset = 0, spu_offset = 0, got_alternate = 0, cur_alt = 0x0,
    alternates = 0x0, played = 0}, playlist = {mmk = 0x0, num = 0, cur = -1,
    ref_append = -1, loop = 0, control = 0}, on_quit = 0, running = 1,
  ignore_next = 0, lirc_enable = 0, stdctl_enable = 0,
  XF86VidMode_fullscreen = 0, mixer = {caps = 3, volume_level = 94, mute = 0,
    amp_level = 100, method = 0, original_level = 94}, widget_key = 3,
  layer_above = 0, always_layer_above = 0, network = 1, network_port = 0,
  use_root_window = 0, snapshot_location = 0x811fcf0 "/home/roderick",
  ssaver_enabled = 1, ssaver_timeout = 10, skip_by_chapter = 1,
  auto_vo_visibility = 0, auto_panel_visibility = 0,
  keymap_file = 0x811cf80 "/home/roderick/.xine/keymap",
---Type <return> to continue, or q <return> to quit---
  kbindings = 0x812da00, shortcut_style = 0, numeric = {set = 0, arg = 0},
  eventer_sticky = 1, stream_info_auto_update = 0,
  curdir = "/home/roderick/t.d/xine-ui-0.99.3/src/xitk", '\0' <repeats 4053 
times>, play_anyway = 0, splash = 1, download_mutex = {__m_reserved = 0,
    __m_count = 0, __m_owner = 0x0, __m_kind = 0, __m_lock = {__status = 0,
      __spinlock = 0}}, report = 0xb7c03e00, no_gui = 0}
(gdb) _

-- System Information:
Debian Release: 3.1
  APT prefers testing
  APT policy: (900, 'testing'), (700, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.11-jones.1
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)

Versions of packages xine-ui depends on:
ii  libc6                2.3.2.ds1-21        GNU C Library: Shared libraries an
ii  libcurl3             7.13.2-2            Multi-protocol file transfer libra
ii  libfreetype6         2.1.7-2.4           FreeType 2 font engine, shared lib
ii  libice6              4.3.0.dfsg.1-12.0.1 Inter-Client Exchange library
ii  libidn11             0.5.13-1.0          GNU libidn library, implementation
ii  libncurses5          5.4-4               Shared libraries for terminal hand
ii  libpng12-0           1.2.8rel-1          PNG library - runtime
ii  libreadline5         5.0-10              GNU readline and history libraries
ii  libsm6               4.3.0.dfsg.1-12.0.1 X Window System Session Management
ii  libssl0.9.7          0.9.7e-3            SSL shared libraries
ii  libx11-6             4.3.0.dfsg.1-12.0.1 X Window System protocol client li
ii  libxext6             4.3.0.dfsg.1-12.0.1 X Window System miscellaneous exte
ii  libxine1             1.0.1-1             the xine video/media player librar
ii  libxtst6             4.3.0.dfsg.1-12.0.1 X Window System event recording an
ii  libxv1               4.3.0.dfsg.1-12.0.1 X Window System video extension li
ii  xlibs                4.3.0.dfsg.1-12     X Keyboard Extension (XKB) configu
ii  zlib1g               1:1.2.2-4           compression library - runtime

-- no debconf information

-- 
Roderick Schertler
[EMAIL PROTECTED]


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

Reply via email to