Greetings all -
I am developing a procedurally generated wilderness (fBm using perlin noise
) for LuminariMUD and have run into an issue with rlist for really big zones.
I have created a zone with 10000 vnums allocated. I am not using all of these vnums right now, of course, but I want to have some expansion room if needed.
The zone is divided into 2 parts:
vnums 1000000 - 1003999 are allocated for custom rooms that replace the generated content at individual coordinates. There are probably 3 rooms actually created in this range.
vnums 1004000 - 1005999 are allocated for a pool of dynamic rooms that are used as the players (and mobs!) walk through the wilderness. If something is in the room, the room is flagged as occupied and not recycled. every 10 seconds or so an event fires that checks the room to see if it is still occupied, if not the occupied flag is cleared and the room is recycled. These rooms are BUILT.
So I have a total of about 2002 rooms in this zone.
If I type rlist in the zone, it crashes, and gdb does not give me any valuable information, basically telling me there was a segfault at the closing brace of list_rooms in oasis_list.c.
It seems like the len/buf size checking is failing in that function and it is accessing memory that is unallocated or otherwise corrupt.
Does anyone have any idea/tips/soutions? I know this is pretty much an 'edge case' but i'd like to be able to use my admin commands in this zone.
Thanks -
Ripley/Ornir
Head Coder, LuminariMUD