[Libburn] New error
Bryan Forbes
bryan at reigndropsfall.net
Mon Aug 23 12:45:50 PDT 2004
I moved around my routines like you said, yet I still get a crash.
Here's the console output and my gdb backtrace:
/
AUDIO.CC;1
AUDIO.H;1
CD_INFO.CC;1
CD_INFO.H;1
[New Thread 81926 (LWP 11478)]
ignored nwa: 0
ctladr|trno|indx|form|scms| msf
------+----+----+----+----+--------
4 1 | 00 | 00 | 01 | 00 |00:00:00
4 1 | 01 | 00 | 10 | 00 |00:00:00
4 1 | 01 | 01 | 10 | 00 |00:02:00
4 1 | AA | 01 | 01 | 00 |00:02:22
pulling from next track
now, the backtrace (full):
#0 0x0e3ba914 in iso_source_generate (src=0x220, buffer=0x31d1aa70 "",
size=2048) at libisofs/writer.c:373
next = 0
err = BURN_SOURCE_OK
target = (struct iso_write_target *) 0x1030d150
#1 0x0e69ba70 in get_bytes (src=0x1030d198, count=2048, data=0x31d1aa70
"")
at libburn/sector.c:76
valid = 0
shortage = 2048
more = 2048
#2 0x0e69bd24 in convert_data (o=0x1030d1b8, src=0x1030d198, inmode=4,
data=0x31d1aa70 "") at libburn/sector.c:128
outlen = 2048
inlen = 2048
offset = -1
outmode = 4
#3 0x0e69d1a8 in sector_data (o=0x1030d1b8, t=0x103460c0, psub=0)
at libburn/sector.c:431
d = (struct burn_drive *) 0xe6b6cbc
subs = "\016k1[?]\000\000\0202\000\000\000\000\000\000\000\000
\0001ѩ[?]\000\000\000\000\016i T\000\000\000\000\000\000\000\001\016jE
[?]\000\000\000\000\000\000\000\0001ҫ[?]1ҫ[?]\016k[?]`1ѩ[?]1ѩ[?]0\000
[?][?]\210\000$h\000\000\000\000\0200Ѹ\0204`[?]\000\000\000\000\000\000
\b"
data = (unsigned char *) 0x31d1aa70 ""
#4 0x0e6a2dfc in burn_write_track (o=0x1030d1b8, s=0x10305be8, tnum=0)
at libburn/write.c:374
t = (struct burn_track *) 0x103460c0
d = (struct burn_drive *) 0xe6b6cbc
i = 0
tmp = 0
sectors = 34
#5 0x0e6a2b00 in burn_write_session (o=0x1030d1b8, s=0x10305be8)
at libburn/write.c:319
d = (struct burn_drive *) 0xe6b6cbc
prev = (struct burn_track *) 0x0
next = (struct burn_track *) 0x0
i = 0
#6 0x0e6a333c in burn_disc_write_sync (o=0x1030d1b8, disc=0x103244d8)
at libburn/write.c:473
sheet = (struct cue_sheet *) 0x10302f08
d = (struct burn_drive *) 0xe6b6cbc
buf = {data = '\0' <repeats 65535 times>, sectors = 1, bytes =
2048}
lt = (struct burn_track *) 0x31d2aac0
first = 1
i = 0
res = 0
#7 0x0e695e34 in write_disc_worker_func (w=0x1030d1b8) at
libburn/async.c:156
No locals.
#8 0x0e625e40 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#9 0x0e625eb8 in pthread_start_thread_event ()
from /lib/libpthread.so.0
No symbol table info available.
#10 0x0e06537c in clone () from /lib/libc.so.6
No symbol table info available.
Thread 5 (Thread 49156 (LWP 11476)):
#0 0x0e62872c in __pthread_sigsuspend () from /lib/libpthread.so.0
No symbol table info available.
#1 0x0e628464 in __pthread_wait_for_restart_signal ()
from /lib/libpthread.so.0
No symbol table info available.
#2 0x0e625034 in pthread_cond_wait at GLIBC_2.0 ()
from /lib/libpthread.so.0
No symbol table info available.
#3 0x0e83c6c8 in _gnome_vfs_thread_pool_init ()
from /usr/lib/libgnomevfs-2.so.0
No symbol table info available.
#4 0x0e83c72c in _gnome_vfs_thread_pool_init ()
from /usr/lib/libgnomevfs-2.so.0
No symbol table info available.
#5 0x0e427484 in g_static_private_free ()
from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#6 0x0e625e40 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#7 0x0e625eb8 in pthread_start_thread_event ()
from /lib/libpthread.so.0
No symbol table info available.
#8 0x0e06537c in clone () from /lib/libc.so.6
No symbol table info available.
Thread 3 (Thread 16386 (LWP 11474)):
#0 0x0e05b548 in poll () from /lib/libc.so.6
No symbol table info available.
#1 0x0e40c358 in g_main_loop_get_context ()
from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#2 0x0e40b51c in g_main_context_dispatch ()
from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#3 0x0e40bdb8 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#4 0x0e763134 in link_thread_io_context ()
from /usr/lib/libORBit-2.so.0
No symbol table info available.
#5 0x0e427484 in g_static_private_free ()
from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#6 0x0e625e40 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#7 0x0e625eb8 in pthread_start_thread_event ()
from /lib/libpthread.so.0
No symbol table info available.
#8 0x0e06537c in clone () from /lib/libc.so.6
No symbol table info available.
Thread 2 (Thread 32769 (LWP 11473)):
#0 0x0e05b548 in poll () from /lib/libc.so.6
No symbol table info available.
#1 0x0e625bd8 in __pthread_manager () from /lib/libpthread.so.0
No symbol table info available.
#2 0x0e625d68 in __pthread_manager_event () from /lib/libpthread.so.0
No symbol table info available.
#3 0x0e06537c in clone () from /lib/libc.so.6
No symbol table info available.
Thread 1 (Thread 16384 (LWP 11472)):
#0 0x0e62c888 in nanosleep () from /lib/libpthread.so.0
No symbol table info available.
#1 0x0e62c874 in nanosleep () from /lib/libpthread.so.0
No symbol table info available.
#2 0x0e42a3e4 in g_usleep () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#3 0x0e8b35c4 in Glib::usleep () from /usr/lib/libglibmm-2.4.so.1
No symbol table info available.
#4 0x10037110 in Coaster::IO::burndisc (drive_info=0x101616b0,
speed=2147474416, burn_type=COASTER_BURN_AUDIO,
slot_progress=@0x7fffde10,
layout_array=@0x1030d1b8, lp=@0x7fffdc54) at cd-io.cc:203
disc = (struct burn_disc *) 0x103244d8
session = (struct burn_session *) 0x10305be8
tr = (struct burn_track *) 0x103460c0
volset = (struct iso_volumeset *) 0x10322e68
src = (burn::burn_source *) 0x1030d198
o = (struct burn_write_opts *) 0x1030d1b8
p = {sessions = 239248356, session = 805352924, tracks =
1210328130,
track = 268661008, indices = 2147474368, index = 239248356,
start_sector = 0, sectors = 100000000, sector = 0}
context = {pCppObject_ = 0xe8b35c4}
#5 0x100580d8 in Coaster::ViewNotebook::on_burn_clicked
(this=0x101ca018)
at slot.h:166
burndialog = {_M_ptr = 0xe42a3e4}
result = 516
#6 0x10047d0c in sigc::adaptor_functor<sigc::bound_mem_functor0<void,
Coaster::ViewNotebook> >::operator() (this=0x0) at mem_fun.h:1781
No locals.
#7 0x10047cc0 in
sigc::internal::slot_call0<sigc::bound_mem_functor0<void,
Coaster::ViewNotebook>, void>::call_it (rep=0x204) at slot.h:89
No locals.
#8 0x0e8b10b8 in Glib::SignalProxyNormal::slot0_void_callback ()
from /usr/lib/libglibmm-2.4.so.1
No symbol table info available.
#9 0x0e4f605c in g_cclosure_marshal_VOID__VOID ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#10 0x0e4e05a4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#11 0x0e4f5848 in g_signal_emit_by_name ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#12 0x0e4f49ec in g_signal_emit_valist ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#13 0x0e4f4d38 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#14 0x0fb1885c in _gtk_action_emit_activate ()
from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#15 0x0fb18940 in gtk_action_activate () from /usr/lib/libgtk-
x11-2.0.so.0
No symbol table info available.
#16 0x0e4f605c in g_cclosure_marshal_VOID__VOID ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#17 0x0e4e05a4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#18 0x0e4f5ac4 in g_signal_emit_by_name ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#19 0x0e4f49ec in g_signal_emit_valist ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#20 0x0e4f4e98 in g_signal_emit_by_name ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#21 0x0fc9a950 in gtk_tool_button_get_type () from /usr/lib/libgtk-
x11-2.0.so.0
No symbol table info available.
#22 0x0e4f605c in g_cclosure_marshal_VOID__VOID ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#23 0x0e4e05a4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#24 0x0e4f5ac4 in g_signal_emit_by_name ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#25 0x0e4f49ec in g_signal_emit_valist ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#26 0x0e4f4d38 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#27 0x0fb25628 in gtk_button_clicked () from /usr/lib/libgtk-
x11-2.0.so.0
No symbol table info available.
#28 0x0fb26804 in _gtk_button_paint () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#29 0x0e4f605c in g_cclosure_marshal_VOID__VOID ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#30 0x0e4e0930 in g_cclosure_new_swap ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#31 0x0e4e05a4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#32 0x0e4f5374 in g_signal_emit_by_name ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#33 0x0e4f49ec in g_signal_emit_valist ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#34 0x0e4f4d38 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#35 0x0fb25568 in gtk_button_released () from /usr/lib/libgtk-
x11-2.0.so.0
No symbol table info available.
#36 0x0fb26618 in _gtk_button_paint () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#37 0x0fbe62f0 in _gtk_marshal_BOOLEAN__BOXED ()
from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#38 0x0e4e0930 in g_cclosure_new_swap ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#39 0x0e4e05a4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#40 0x0e4f5470 in g_signal_emit_by_name ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#41 0x0e4f47b0 in g_signal_emit_valist ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#42 0x0e4f4d38 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#43 0x0fcebee8 in gtk_widget_send_expose () from /usr/lib/libgtk-
x11-2.0.so.0
No symbol table info available.
#44 0x0fbe4670 in gtk_propagate_event () from /usr/lib/libgtk-
x11-2.0.so.0
No symbol table info available.
#45 0x0fbe3118 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#46 0x0f9b965c in _gdk_events_queue () from /usr/lib/libgdk-x11-2.0.so.0
No symbol table info available.
#47 0x0e409c98 in g_main_depth () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#48 0x0e40b1dc in g_main_context_dispatch ()
from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#49 0x0e40b5ac in g_main_context_dispatch ()
from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#50 0x0e40bdb8 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#51 0x0fbe281c in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#52 0x0ed05010 in Gtk::Main::run_impl () from /usr/lib/libgtkmm-2.4.so.1
No symbol table info available.
#53 0x0ed04d6c in Gtk::Main::run () from /usr/lib/libgtkmm-2.4.so.1
No symbol table info available.
#54 0x10049574 in main (argc=0, argv=0xe480840) at main.cc:297
main_instance = <incomplete type>
authors = {<std::_Vector_base<Glib::ustring,
std::allocator<Glib::ustring> >> =
{<std::_Vector_alloc_base<Glib::ustring, std::allocator<Glib::ustring>,
true>> = {_M_start = 0xe8b35c4, _M_finish = 0x50,
_M_end_of_storage = 0x1}, <No data fields>}, <No data fields>}
documenters = {<std::_Vector_base<Glib::ustring,
std::allocator<Glib::ustring> >> =
{<std::_Vector_alloc_base<Glib::ustring, std::allocator<Glib::ustring>,
true>> = {_M_start = 0x10037110, _M_finish = 0x100597ac,
_M_end_of_storage = 0x10305be8}, <No data fields>}, <No data
fields>}
instmgr = {ptr_ = 0x7fffddd0}
capabilities = 0xe478eb4
0x0e3ba914 373 struct iso_write_target *target = src-
>data;
Hope this helps!
On Mon, 2004-08-23 at 10:23 -0500, Bryan Forbes wrote:
> I was just told by teuf and mjg59, in #gnome-hackers, that there is a
> patch in kernel 2.6.8 that only allows burning with root. Here's the
> log:
>
> <mxpxpod> something with the new 2.6.8 kernel makes libburn freak out
> <mxpxpod> which is not good for coaster
> <teuf> mxpxpod, yeah, that's a known issue with 2.6.8
> <mxpxpod> teuf: really?
> <teuf> mxpxpod, cd burning only works as root with it
> <mxpxpod> teuf: well, when are they going to fix that?
> <teuf> mxpxpod, in the next release ?
> <teuf> I think they backed out the patch
> <mxpxpod> teuf: good, thanks
> <mjg59> teuf: No, they're not backing it out
> <mxpxpod> mjg59: why not??
> <mjg59> mxpxpod: Because the current situation is that anyone with read
> access to a scsi generic device can destroy the hardware
> <mxpxpod> mjg59: :(
> <mjg59> 2.6.8 fixes that, so you need CAP_RAWIO instead
> <mxpxpod> mjg59: is that a flag?
> <teuf> mjg59, ah ok, I didn't follow the issue too closely
> <mjg59> mxpxpod: It's a capability
> <mxpxpod> mjg59: how's it work?
> <mjg59> Root has it by default
> <mjg59> So the easiest thing is to make the app suid root and then
> immediately drop all privileges other than RAWIO
> <mxpxpod> mjg59: how do I do that?
> <jamesh> to make cd burning as an unpriveleged user really safe, the
> kernel would probably need to include enough of the CD writing code to
> allow you to do "cat cdimage.iso > /dev/cdrom"
> <mjg59> mxpxpod: Which bit?
> <mxpxpod> mjg59: the part about dropping all other privs
> <mjg59> mxpxpod: capget, and then mask off all the bits you don't need
> <mjg59> Then capset it back
> <mxpxpod> mjg59: is capget a kernel function?
> <mjg59> mxpxpod: Yeah, there's an easier interface through libc. See
> capabilities(7)
> <teuf> mxpxpod, see
> http://www.ussg.iu.edu/hypermail/linux/kernel/0408.2/0091.html for a
> thread about your problem
>
> I'm not sure how to do that because Gtk+ doesn't allow me to run a
> program setuid root. I'm talking with mjg59 now about how to get this
> to work.
>
> On Mon, 2004-08-23 at 02:28 -0500, Derek Foreman wrote:
> > On Sun, 22 Aug 2004, Bryan Forbes wrote:
> >
> > > I just upgraded my kernel to 2.6.8 and I'm getting a new error with
> > > libburn. If I run the devices test, I get this on the command line:
> > >
> > > Initializing library...Success
> > > Scanning for devices...devices: libburn/sg.c:247: sg_issue_command:
> > > Assertion `err != -1' failed.
> > > Killed
> >
> > Nice.
> >
> > You sure you have the right permissions on your cd burning device? Can
> > you duplicate this while running as root?
> >
> > My guess is that you've only got read access to the device node or
> > something along those lines. And the only fix I'll be able to give you
> > will just make libburn refuse to use the device at all when it's
> > configured like that.
> >
> > I think 2.6.8 added some command filtering stuff to prevent malicious
> > users from being able to destroy drives.
> >
> > It looks like the command to unlock the drive door isn't allowed. Amusing
> > because it appears to have been ok to lock it in the first place.
> >
> > oh, and I think "thread apply all bt full" is what I'm looking for - but
> > I don't need any more info here. This is most likely a device permission
> > problem or a kernel bug.
> _______________________________________________
> libburn mailing list
> libburn at freedesktop.org
> http://pdx.freedesktop.org/cgi-bin/mailman/listinfo/libburn
--
======================================================================
Bryan Forbes
bryan at reigndropsfall.net
http://www.reigndropsfall.net
"It does not take a majority to prevail, but rather an irate, tireless
minority keen to set brush fires in people's minds."
- Samuel Adams, an architect of the Constitution
Key fingerprint = 3D7D B728 713A BB7B B8B1 5B61 3888 17E0 70CA 0F3D
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://freedesktop.org/pipermail/libburn/attachments/20040823/a4114895/attachment.pgp
More information about the libburn
mailing list