cmdline: avifix -f 25,1 -i out.avi
causes segfault on large avi file (out.avi is 4197853758 bytes).
gdb report:
Program terminated with signal 11, Segmentation fault.
#0 0x0804d934 in AVI_close (AVI=0x97d7008) at avilib.c:1913
1913 if (AVI->video_superindex->stdindex[j]) {
(gdb) bt
#0 0x0804d934 in AVI_close (AVI=0x97d7008) at avilib.c:1913
#1 0x08049173 in main (argc=2019847785, argv=0x78) at avifix.c:344
Attached patch fixes this for me.
--
WBR,
Vadim Druzhin <[EMAIL PROTECTED]>
diff -urN transcode-1.0.4.orig/avilib/avilib.c transcode-1.0.4/avilib/avilib.c
--- transcode-1.0.4.orig/avilib/avilib.c 2005-11-06 08:57:52.000000000
+0300
+++ transcode-1.0.4/avilib/avilib.c 2007-11-08 16:47:01.000000000 +0300
@@ -2483,6 +2483,7 @@
a = hdrl_data+i;
AVI->video_superindex = (avisuperindex_chunk *) malloc (sizeof
(avisuperindex_chunk));
+ memset(AVI->video_superindex, 0, sizeof (avisuperindex_chunk));
memcpy (AVI->video_superindex->fcc, a, 4); a += 4;
AVI->video_superindex->dwSize = str2ulong(a); a += 4;
AVI->video_superindex->wLongsPerEntry = str2ushort(a); a += 2;