sievec core dumps when hitting 'address' or 'envelope'
Michael Loftis
mloftis at wgops.com
Mon Aug 30 01:22:15 EDT 2004
Probably has to do with 64 bit alignment and pointers versus 32 bit
alignment and pointers. by reordering the int/pointer pair the union
becomes not so much a union in the sense that may be meant for it. didn't
look into it deeply at all myself, but it would ppear that the machine
code/variable space for each of the compiled versions of those mis-ordered
unions is quite different on 64 bit platforms.
--On Monday, August 30, 2004 00:42 -0400 Scott Adkins <adkinss at ohio.edu>
wrote:
> We ran into a problem on Tru64 where the sieve compiler was core dumping
> if it tried to compile a script that used 'address' or 'envelope' in it.
> For example, the following script would core dump sievec:
>
> if address :contains "To" "jshmoe at nowhere.com" {
> stop;
> }
>
> Changing 'address' to 'header' would work just fine.
>
> I tracked it down to a header file, tree.h. Basically, there is a union
> defined inside the 'Test' structure that itself defines a few structures
> that would share the same memory space (so to speak... if you understand
> C programming, then you should understand what unions are). The problem
> is that two of the structures defined many of the same variables as each
> other, but in different orders...
>
> For example, the first structure in the union declares A, B, then C, but
> the second structure in the union declares A, C, then B.
>
> This shouldn't normally be a problem, but on Tru64 5.x, it certainly is.
> I am not sure if it is a weirdness with 'cc', or if it is something
> deeper.
> The code compiles and without warnings, but it core dumps at runtime.
>
> Simply changing the order in one structure or the other to match solves
> the problem nicely.
>
> This could very well be related to the following bug:
>
> <https://bugzilla.andrew.cmu.edu/show_bug.cgi?id=2476>
>
> I submitted a patch, which I will include here, that should fix it. It
> is a *very* small patch :)
>
> Scott
> --
> +-----------------------------------------------------------------------+
> Scott W. Adkins http://www.cns.ohiou.edu/~sadkins/
> UNIX Systems Engineer mailto:adkinss at ohio.edu
> ICQ 7626282 Work (740)593-9478 Fax (740)593-1944
> +-----------------------------------------------------------------------+
> PGP Public Key available at http://www.cns.ohiou.edu/~sadkins/pgp/
--
Undocumented Features quote of the moment...
"It's not the one bullet with your name on it that you
have to worry about; it's the twenty thousand-odd rounds
labeled `occupant.'"
--Murphy's Laws of Combat
---
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html
More information about the Info-cyrus
mailing list