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.

Reply via email to