ardour2 crash by SIGSEV in freeaddrinfo (from liblo)

Bug #493181 reported by Yvon TANGUY
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
liblo (Ubuntu)
Expired
Undecided
Unassigned

Bug Description

----------------------------------------------------
Description: Ubuntu 9.10
Release: 9.10

Arch: AMD64 (Intel i7 920)

uname -a:
Linux vono-fixe 2.6.31-16-generic #52-Ubuntu SMP Thu Dec 3 22:07:16 UTC 2009 x86_64 GNU/Linux

root@vono-fixe:~# apt-cache policy ardour
ardour:
  Installé : 1:2.8.2-0ubuntu1
  Candidat : 1:2.8.2-0ubuntu1
 Table de version :
 *** 1:2.8.2-0ubuntu1 0
        500 http://fr.archive.ubuntu.com karmic/universe Packages
        100 /var/lib/dpkg/status

root@vono-fixe:~# apt-cache policy liblo0ldbl
liblo0ldbl:
  Installé : 0.23-2.2
  Candidat : 0.23-2.2
 Table de version :
 *** 0.23-2.2 0
        500 http://fr.archive.ubuntu.com karmic/universe Packages
        100 /var/lib/dpkg/status

----------------------------------------------------

I've install ardour2 to test it, but it always crash with a Segmentation fault (SIGSEV).

here the reproduction step:
- launch ardour2
- in the session manager dialog box, type a session name, eventualy chosse a directory.
- Click on the new button
--> Crash

----------------------------------------------------
vono@vono-fixe:~/.dbus/session-bus$ export LANG=C
vono@vono-fixe:~/.dbus/session-bus$ ardour2

[...]

ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: use 2 periods for playback
SSE2 detected
loading bindings from /etc/ardour2/mnemonic-us.bindings
Loading session /home/vono/tmp/test using snapshot test (1)
Segmentation fault
vono@vono-fixe:~/.dbus/session-bus$ subgraph starting at ardour timed out (subgraph_wait_fd=12, status = 0, state = Triggered, pollret = 0 revents = 0x0)

**** alsa_pcm: xrun of at least 480.649 msecs

----------------------------------------------------

Since I've not the traditional ubuntu bug reporting launch when it crash, i tried to manually discover what's wrong.

After installing debugs packages, I've this stacktrace in gdb:

(gdb) backtrace
#0 *__GI_freeaddrinfo (ai=0x5) at ../sysdeps/posix/getaddrinfo.c:2392
#1 0x00007fffef71cca5 in ?? () from /usr/lib/liblo.so.0
#2 0x00007fffef71cf2a in lo_send_message_from () from /usr/lib/liblo.so.0
#3 0x00007fffef71d053 in lo_send_internal () from /usr/lib/liblo.so.0
#4 0x00007ffff7b02313 in ARDOUR::OSC::session_loaded (this=0x13a12b0, s=...) at libs/ardour/osc.cc:429
#5 0x00007ffff7b02191 in ARDOUR::OSC::set_session (this=0x13a12b0, s=...) at libs/ardour/osc.cc:415
#6 0x00007ffff7a5cae1 in ARDOUR::Session::when_engine_running (this=0x7fffe00a0d90) at libs/ardour/session.cc:913
#7 0x00007ffff7abae4f in ARDOUR::Session::second_stage_init (this=0x7fffe00a0d90, new_session=false)
    at libs/ardour/session_state.cc:317
#8 0x00007ffff7a5175f in Session (this=0x7fffe00a0d90, eng=..., fullpath=..., snapshot_name=..., mix_template=...)
    at libs/ardour/session.cc:320
#9 0x000000000082c734 in ARDOUR_UI::load_session (this=0x10ff540, path=..., snap_name=..., mix_template=...)
    at gtk2_ardour/ardour_ui.cc:2482
#10 0x000000000082c17e in ARDOUR_UI::get_session_parameters (this=0x10ff540, backend_audio_is_running=true,
    should_be_new=true) at gtk2_ardour/ardour_ui.cc:2411
#11 0x000000000082383c in ARDOUR_UI::startup (this=0x10ff540) at gtk2_ardour/ardour_ui.cc:654
#12 0x000000000084426a in sigc::bound_mem_functor0<void, ARDOUR_UI>::operator() (this=0x131fe88)
    at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1787
#13 0x0000000000842d1c in sigc::adaptor_functor<sigc::bound_mem_functor0<void, ARDOUR_UI> >::operator() (this=0x131fe80)
    at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#14 0x0000000000840bb4 in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, ARDOUR_UI>, void>::call_it (
    rep=0x131fe50) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#15 0x00000000008336ac in sigc::internal::signal_emit0<void, sigc::nil>::emit (impl=0x131ce90)
    at /usr/include/sigc++-2.0/sigc++/signal.h:548
#16 0x0000000000839f4c in sigc::signal0<void, sigc::nil>::emit (this=0x10ff5c8)
    at /usr/include/sigc++-2.0/sigc++/signal.h:1706
#17 0x0000000000837322 in sigc::signal0<void, sigc::nil>::operator() (this=0x10ff5c8)
    at /usr/include/sigc++-2.0/sigc++/signal.h:1710
#18 0x00007ffff2b6ff84 in Gtkmm2ext::UI::run (this=0x10ff540, old_receiver=...) at libs/gtkmm2ext/gtk_ui.cc:224
#19 0x0000000000b2055b in main (argc=1, argv=0x7fffffffe338) at gtk2_ardour/main.cc:346

The problem seems to come from "liblo-0.23/src/send.c" source file.
The "static int resolve_address(lo_address a)" does not initialize the "ai" pointer:
  struct addrinfo *ai; // line 362

then when calling "ret = getaddrinfo(a->host, a->port, &hints, &ai)" // line 373, the getaddrinfo call the function freeaddrinfo, with maybe an uninitialized pointer.

I've juste replace the line 362 with;
   struct addrinfo *ai = NULL;

recompile, update my LD_LIBRARY_PATH env var, and relaunch ardour. It work !

-----------------------------------------
Note: I hope it is a valid bug report, since i do not know really how to do it.
I've not provide a patch/diff file, but I can if you prefer.

Yvon TANGUY (vono22)
description: updated
Revision history for this message
Pander (pander) wrote :

Is this still relevant and/or reproducible in Ubuntu 19.04 disco

Changed in liblo (Ubuntu):
status: New → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for liblo (Ubuntu) because there has been no activity for 60 days.]

Changed in liblo (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.