Re: Core dump, bus error, byte alignment, ObjStack

James Lee <[email protected]>
Newsgroups gmane.comp.gnu.aspell.devel
Message-ID <[email protected]>
On 21/05/04, 14:38:56, Kevin Atkinson <[email protected]> wrote regarding Re: 
[aspell-devel] Core dump, bus error, byte alignment, ObjStack:

> > A simple workaround which so far has allowed aspell to run is to modify
> > ObjStack alloc(size_t size) to align to a 4 byte boundary:

> But memory ineffect (in the case of very short strings).  Also won't work
> on 64 bit platforms.  Best to modify the above statement to:
>   WordData * b = (WordData *)buf.alloc(total_size, sizeof(void *));


Of course. The quick workaround is not the solution. The appropriate 
alloc call (with or without the alignment) is required throughout the 
code. Perhaps there aren't any more, seems to be working with just:

--- modules/speller/default/readonly_ws.cpp.orig	2004-05-12 
07:03:28.000000000 +0100
+++ modules/speller/default/readonly_ws.cpp	2004-05-21 15:44:32.630024000 
+0100
@@ -850,7 +850,7 @@
             return make_err(invalid_word, MsgConv(lang)(w),
                             _("The total word length, with soundslike 
data, is larger than 240 characters."));
 
-          WordData * b = (WordData *)buf.alloc(total_size);
+          WordData * b = (WordData *)buf.alloc(total_size, sizeof(void 
*));
           *prev = b;
           b->next = 0;
           prev = &b->next;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.