On Saturday 25 July 2009 04:42:31 Stuart Henderson wrote: > On 2009/07/24 18:01, Brad wrote: > > Here is an update to Transcode 1.1.3. This also has the lzo FLAVOR > > again unlike the previous 1.1.2 update now that there is the lzo2 > > library in the ports tree. > > When given command line arguments other than complete long options, > getopt_long(3) runs past the end of the long_options array (i = 101; > there are 100 elements). This is because it isn't terminated with > the required {0,0,0,0} (generated in src/cmdline_def.h). > > On amd64 this causes a bus error for me. Backtrace below. > > I'm pretty surprised upstream didn't run into this as GNU getopt_long > has the same termination requirement as the version in our libc. > > > - > > avcodec.>=13.1,avutil.>=6:ffmpeg->=20080620p10:graphics/ffmpeg \ > > + > > avcodec.>=10,avformat.>=12,avutil.>=4,postproc.>=6::graphics/ffmpeg \ > > I think we need avcodec.>=13.1 so that WANTLIB is correct, I also think > we need to keep the pkgspec to help the package tools, I'm not sure > whether it's intended but my observation is that the library specs are > just a check (pkg_add exits if it's not satisfied), whereas we need > to specify pkgspec to actually get the package updated. >
Please file a bug report here... http://developer.berlios.de/bugs/?group_id=10094 The authors seem to be responsive with a good bug report. > (gdb) r > Starting program: /usr/local/bin/transcode > 'transcode -h | more' shows a list of available command line options. > > Program exited with code 01. > (gdb) set args -h > (gdb) r > Starting program: /usr/local/bin/transcode -h > > Program received signal SIGBUS, Bus error. > [Switching to process 10925, thread 0x201494800] > strncmp (s1=0x7f7ffffe3962 "h", > s2=0x6f6c2e3478766964 <Address 0x6f6c2e3478766964 out of bounds>, n=1) > at /usr/src/lib/libc/string/strncmp.c:45 > 45 if (*s1 != *s2++) > (gdb) bt full > #0 strncmp (s1=0x7f7ffffe3962 "h", > s2=0x6f6c2e3478766964 <Address 0x6f6c2e3478766964 out of bounds>, n=1) > at /usr/src/lib/libc/string/strncmp.c:45 > No locals. > #1 0x000000020a0ac806 in parse_long_options (nargv=0x7f7ffffe33e8, > options=0x891800 > "hvq:i:o:t:p:m:a:c:T:S:L:H:x:g:f:e:n:y:F:N:R:w:b:E:j:I:X:B:Z:Y:r:zlkKG:C:V: >ds:AJ:Q:P:D:M:OW:U:u:", long_options=0x684220, idx=0x0, short_too=1) at > /usr/src/lib/libc/stdlib/getopt_long.c:184 > current_argv = 0x7f7ffffe3962 "h" > has_equal = 0x0 > current_argv_len = 1 > i = 101 > match = -1 > #2 0x000000020a0acd03 in getopt_internal (nargc=2, nargv=0x7f7ffffe33e8, > options=0x891800 > "hvq:i:o:t:p:m:a:c:T:S:L:H:x:g:f:e:n:y:F:N:R:w:b:E:j:I:X:B:Z:Y:r:zlkKG:C:V: >ds:AJ:Q:P:D:M:OW:U:u:", long_options=0x684220, idx=0x0, flags=1) at > /usr/src/lib/libc/stdlib/getopt_long.c:404 > oli = 0xca0 <Address 0xca0 out of bounds> > optchar = 1 > short_too = 1 > posixly_correct = 0 > #3 0x0000000000413965 in parse_cmdline (argc=2, argv=0x7f7ffffe33e8, > vob=0x207a1ac00) > at /usr/obj/ports/transcode-1.1.3/transcode-1.1.3/src/cmdline.c:201 > shortopts = 0x891800 > "hvq:i:o:t:p:m:a:c:T:S:L:H:x:g:f:e:n:y:F:N:R:w:b:E:j:I:X:B:Z:Y:r:zlkKG:C:V: >ds:AJ:Q:P:D:M:OW:U:u:" option = 32 > #4 0x000000000040a8a5 in main (argc=2, argv=0x7f7ffffe33e8) > at /usr/obj/ports/transcode-1.1.3/transcode-1.1.3/src/transcode.c:1384 > sigs_to_block = 16386 > psubase = 0x0 > fch = 9.8813129168249309e-324 > asr = 6.926194255891346e-310 > leap_bytes1 = 32639 > leap_bytes2 = -117864 > max_frame_buffer = 10 > tstart = (struct fc_time *) 0x0 > specs = {frc = -117864, width = 32639, height = -117784, > format = 32639, rate = 2, channels = 0, bits = 153101265, > samples = 2.5394974196240072e-321} -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.