[FFmpeg-devel] [PATCH] Fix a crash when adding many video clips to a kdenlive project:
Mikko Rapeli
mikko.rapeli at iki.fi
Sat Aug 27 18:02:47 CEST 2011
*** glibc detected *** /usr/bin/kdenlive: munmap_chunk(): invalid pointer: 0x6b6b6961 ***
======= Backtrace: =========
/lib/i386-linux-gnu/i686/cmov/libc.so.6(+0x6aac1)[0xb5c36ac1]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(+0x6bd3e)[0xb5c37d3e]
/usr/lib/i386-linux-gnu/i686/cmov/libavutil.so.51(av_freep+0x12)[0xb0223632]
======= Memory map: ========
(gdb) bt full
No symbol table info available.
at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
resultvar = <optimized out>
pid = -1244520460
selftid = 6048
act = {__sigaction_handler = {
sa_handler = 0xb7fff4e4 <_rtld_global+1220>,
sa_sigaction = 0xb7fff4e4 <_rtld_global+1220>}, sa_mask = {
__val = {851968, 2955052656, 2954984288, 2893854976, 3078,
2893854944, 2954980608, 2954979420, 0, 77, 2893854788,
3049852392, 9, 2893854872, 3050446836, 3, 2893856332,
2893854992, 3049970916, 56, 2893854872, 9, 0, 2893854968,
2893854980, 7, 3050301468, 3050301464, 3050296943, 3050297008,
18, 2893854872}}, sa_flags = -1401112352,
sa_restorer = 0xb5cffbf6}
sigs = {__val = {32, 0 <repeats 31 times>}}
fmt=0xb5d01a90 "*** glibc detected *** %s: %s: 0x%s ***\n")
at ../sysdeps/unix/sysv/linux/libc_fatal.c:189
ap = <optimized out>
---Type <return> to continue, or q <return> to quit---
fd = -1401111992
on_2 = <optimized out>
list = <optimized out>
nlist = <optimized out>
cp = <optimized out>
written = false
str=0x6 <Address 0x6 out of bounds>, ptr=0x6b6b6961) at malloc.c:6283
buf = "6b6b6961"
cp = <optimized out>
__func__ = "munmap_chunk"
block = <optimized out>
total_size = 4294967287
ret = <optimized out>
No locals.
ptr = 0x134a3d9c
No locals.
at producer_avformat.c:2452
---Type <return> to continue, or q <return> to quit---
producer = 0x125e82d8
context = <optimized out>
properties = 0x125e82d8
frame_properties = 0x1269e288
index = 1
at producer_avformat.c:2530
service = 0x125e82d8
cache_item = <optimized out>
self = 0xffcecc8
position = <optimized out>
index=0) at mlt_producer.c:584
properties = 0x125e82d8
eof = <optimized out>
speed = 1
clone = <optimized out>
result = 1
self = 0x125e82d8
index=0) at mlt_service.c:481
new_position = 1
previous_frame = <optimized out>
---Type <return> to continue, or q <return> to quit---
next_frame = <optimized out>
properties = 0x121abef0
in = 0
out = 1996
position = 0
result = <optimized out>
at MltService.cpp:95
frame = 0x121abef0
result = 0xb7f8db37
at /home/mcfrisk/src/kdenlive-git/src/kthumb.cpp:408
mlt_frame = <optimized out>
z = 0
producer = {<Mlt::Service> = {<Mlt::Properties> = {
_vptr.Properties = 0xb7f971f8, instance = 0x0}, instance = 0x0},
instance = 0x125e82d8, parent_ = 0x0}
__PRETTY_FUNCTION__ = "void KThumb::slotCreateAudioThumbs()"
last_val = 0
val = 0
prof = {instance = 0xf7b71b8}
at /usr/include/qt4/QtCore/qtconcurrentrunbase.h:120
---Type <return> to continue, or q <return> to quit---
No locals.
at /usr/include/qt4/QtCore/qtconcurrentrunbase.h:114
No locals.
at concurrent/qthreadpool.cpp:106
r = 0x644a3e70
expired = <optimized out>
locker = {val = 218480224}
at thread/qthread_unix.cpp:320
__clframe = {
__cancel_routine = 0xb7c48400 <QThreadPrivate::finish(void*)>,
__cancel_arg = 0x87ddef0, __do_it = 1,
__cancel_type = <optimized out>}
thr = 0x87ddef0
data = 0xd05c2f8
__res = <optimized out>
__ignore1 = <optimized out>
__ignore2 = <optimized out>
pd = 0xac7ccb70
now = <optimized out>
---Type <return> to continue, or q <return> to quit---
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536,
-1401109448, 766084995, 1370961333}, mask_was_saved = 0}},
priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0,
cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
freesize = <optimized out>
__PRETTY_FUNCTION__ = "start_thread"
No locals.
Backtrace stopped: Not enough registers or memory available to unwind further
---
libavcodec/utils.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index ee1bfcc..4ad902b 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -886,8 +886,8 @@ av_cold int avcodec_close(AVCodecContext *avctx)
avctx->coded_frame = NULL;
if (avctx->codec && avctx->codec->priv_class)
av_opt_free(avctx->priv_data);
- av_opt_free(avctx);
av_freep(&avctx->priv_data);
+ av_opt_free(avctx);
if(avctx->codec && avctx->codec->encode)
av_freep(&avctx->extradata);
avctx->codec = NULL;
--
1.7.5.4
More information about the ffmpeg-devel
mailing list