El Lun, 23 de Febrero de 2009, 14:01, Thomas Adam escribió:
> 2009/2/23 Jesús Guerrero <[email protected]>:
>
>>> Index: modules/FvwmButtons/button.c
>>> ===================================================================
>>> RCS file: /home/cvs/fvwm/fvwm/modules/FvwmButtons/button.c,v
>>> retrieving revision 1.40 diff -u -r1.40 button.c ---
>>> modules/FvwmButtons/button.c  22 Feb 2009 21:24:48 -0000      1.40
>>> +++
>>> modules/FvwmButtons/button.c  23 Feb 2009 11:51:06 -0000 @@ -489,6
>>> +489,7
>>> @@
>>> /* needed to prevent a gcc -O3 bug */
>>> volatile int old;
>>>
>>> +  old = ub->c->allocated_buttons;
>>> if(num>=ub->c->allocated_buttons) { if(num<old || old>(old+32)) /* test
>>> for num<old or for signed overflow */
>>
>> This indeed seems to work with the old config file.
>>
>
> ... and hence I assume you can happily invoke FvwmButtons -g blah
> SomeAlias?
>

Yes. I have undone the changes to my config file. I removed the
Geometry option and I've reverted to the -g parameter when
invoking the module. Previously, this caused the segfault, but
after patching FvwmButtons.c it now works.

I wonder however what triggered this problem. It has been working
for years without a problem and I don't see any recent reference
to FvwmButtons.c in the Changelog nor in the CHANGES file in the
FvwmButtons directory.

If the volatile variable wasn't correctly initialized maybe this
can be due to a recent glibc update and the way that the memory
is mapped now or something like that, I updated glibc some
days ago. It's the only thing I can think of.


-- 
Jesús Guerrero


Reply via email to