[CODE] another crash bug :(

From: Andrey Fidrya (andrey@alex-ua.com)
Date: 06/01/99

Subj, in pager. How to reproduce it:

Char1 types "news" or "help [something large]" (for example "help alias").
Char2 types "reload news", "reload xhelp" or "reload all".
Possible results:
1) Crash (happens too often)
2) Char1 will get a lot of garbage if he tries to advance to next page
3) In some cases this can be unnoticeable (if memory area still wasn't
destroyed by malloc)

Suggested fixes:
1) Call page_string with second parameter = TRUE everywhere. This way
a copy of text being paged will never be lost.
2) More hackish way: force all to "Q"uit reading when "reload" command
is issued. :)
3) This one is the best, imho:
When "reload" is called, for every text string to be reloaded, perform a
cycle through descriptor list and compare pager's head pointer to
pointer of string to be realloc-d. If same ptrs are found - then send
message to player:
"Text you are reading is obsolete. Please reload." and abort paging
for him.
And perform string reload only after cleaning pager's pointers.

Any other ideas?

Zmey // 3MoonsWorld (rmud.net.ru:4000)

     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html  |

This archive was generated by hypermail 2b30 : 12/15/00 PST