Opened 12 years ago

Closed 12 years ago

#4758 closed defect (fixed)

Segfault in videoout_null

Reported by: andrei@… Owned by: Isaac Richards
Priority: minor Milestone: 0.21
Component: mythtv Version: 0.21-fixes
Severity: medium Keywords:
Cc: Ticket locked: no

Description

I get this segfault repeatedly watching ATSC or NTSC live tv, and enabling PiP. Sorry for partial backtrace (attached), this is all I can get on Windows.

Closer examination shows this: (gdb) return Make selected stack frame return now? (y or n) y #0 VideoOutputNull::UpdatePauseFrame? (this=0x342e8ab0)

at videoout_null.cpp:177

177 } (gdb) info locals pauseb = (VideoFrame? *) 0x2f41cfc0 pauseu = (VideoFrame? *) 0x0 (gdb) print pauseb $1 = (VideoFrame? *) 0x2f41cfc0 (gdb) print pauseb->buf $2 = (unsigned char *) 0x0

which means that memcpy(pauseFrame.buf, pauseb->buf, pauseb->size); was called with null pointer.

Output of -v playback is below (several times). Apparently UpdatePauseFrame? is called while vbuffers.Init is still running.

2008-02-23 16:32:39.466 Display Rect left: 0, top: 0, width: 0, height: 0, aspect: 1.33333 2008-02-23 16:32:39.472 Video Rect left: 0, top: 0, width: 1280, height: 720, aspect: 1.77778 2008-02-23 16:32:39.478 Created data @0x39ec0030->0x3a011832 2008-02-23 16:32:39.487 Created data @0x3a020030->0x3a171832 2008-02-23 16:32:39.492 Created data @0x3a180030->0x3a2d1832 2008-02-23 16:32:39.501 Created data @0x3a2e0030->0x3a431832 2008-02-23 16:32:39.505 Created data @0x3a440030->0x3a591832 2008-02-23 16:32:39.509 Created data @0x3a5a0030->0x3a6f1832 2008-02-23 16:32:39.517 Created data @0x3a700030->0x3a851832 2008-02-23 16:32:39.522 Created data @0x3a860030->0x3a9b1832 Program received signal SIGSEGV, Segmentation fault. .......

2008-02-23 16:26:31.601 Created data @0x3d7b0030->0x3d901832 2008-02-23 16:26:31.606 Created data @0x3d910030->0x3da61832 2008-02-23 16:26:31.611 Created data @0x3da70030->0x3dbc1832 2008-02-23 16:26:31.617 Created data @0x3dbd0030->0x3dd21832 2008-02-23 16:26:31.624 Created data @0x3dd30030->0x3de81832 2008-02-23 16:26:31.629 Created data @0x3de90030->0 Program received signal SIGSEGV, Segmentation fault.

Attachments (2)

backtrace.txt (1.1 KB) - added by andrei@… 12 years ago.
4758-v1.patch (7.7 KB) - added by danielk 12 years ago.
Possible fix

Download all attachments as: .zip

Change History (5)

Changed 12 years ago by andrei@…

Attachment: backtrace.txt added

Changed 12 years ago by danielk

Attachment: 4758-v1.patch added

Possible fix

comment:1 Changed 12 years ago by danielk

Andrei, can you give the attached patch a try? It just copies over some of the same code from VideoOutputXv?.. in some limited testing here it doesn't seem to cause any problems and it should be fully thread-safe since it is based on the X11 code..

comment:2 Changed 12 years ago by andrei@…

It seems to be stable with the patch.

Thanks, Daniel.

comment:3 Changed 12 years ago by danielk

Resolution: fixed
Status: newclosed

(In [16266]) Fixes #4758. Fixes a segfault in videoout_null.

This just copies over some of the locking we use in VideoOutputXv?? and cleans up the ctor/dtor.

Note: See TracTickets for help on using tickets.