RE: Re : [cvsnt] Unknown expansion option ' æ'

David Somers dsomers at trevezel.com
Wed Jun 1 10:08:59 BST 2005


> > My initial guess was that something was happening around line
> 5052 (or so):
> >  np->data =
> > xstrdup((options&&*options)?options+2:(rcs->expand?rcs->expand:"kv"));
> >
> > Perhaps options is invalid?
> >
> It's fairly heavily validated so I'd be surprised if it could be..

Prepare to be surprised.

> it's
> parsed into a binary structure fairly early on in the process and any
> faults like that would be noticed there, rather than later on.

Here's some debug output that I got

for key kopt....
np->data now <E6><B7>|<FA><E6><B7>kvVl^Q
options = o
rcs->expand = o
U prj/wxWidgets/acinclude.m4

The problem is:
np->data =
xstrdup((options&&*options)?options+2:(rcs->expand?rcs->expand:"kv"));

options only contains "o", but I think you are expecting it to contain
something like "-ko" (because you squirt out options+2... but here options
only contain "o" so squirting out options+2 results in garbage being written
instead of valid.

It might be worth putting an assert like
assert(options && options[0]=='-' && options[1]=='k')
before line 5052 as a guard.

So I guess the problem is upstream in src/import.cpp which is somehow
setting a bogus options flag.

Cheers,

David




More information about the cvsnt mailing list