On Sat, Mar 30, 2002 at 01:31:09PM -0800, Kris Kennaway wrote: Hi Terry and Kris,
> Sounds like it could be the malloc.conf defaults on -current exposing > a bug in the program code. Yes, there was a bug in my code, it just didn't show up on -STABLE. Apparently, when one uses efence, allocated memory is zeroed, which would explain why the program worked when linked with efence. I've built a debug version of libdialog and found something interesting... #0 0x28324253 in dialog_checklist (title=0x80bcf54 "Knobs Menu", prompt=0x80bcf60 "A checked entry means that knob is set to YES", height=-1,width=-1, list_height=15, cnt=-1697, it=0x81e6014, result=0x0) at checklist.c:82 82 status[i] = ditems[i].checked ? ditems[i].checked(&ditems[i]) : FALSE; There is something odd in that cnt value, as there aren't 1697 entries in the menu. The problem is the way the dialog structure is built, I malloc memory but don't zero it, so when I call the function that in the end calls dialog, it erroneously assumes that there are more entries than there really are, since it simply checks for !=0 data. The garbage present in the malloc'ed mem is the cause. Why this problem doesn't show on -STABLE is still beyond my comprehension, default malloc behaviour maybe? Anyway, problem solved, thanks for all. Cheers, -- Miguel Mendez - [EMAIL PROTECTED] GPG Public Key :: http://energyhq.homeip.net/files/pubkey.txt EnergyHQ :: http://www.energyhq.tk FreeBSD - The power to serve!
Description: PGP signature