diff --git a/src/syncterm/bbslist.c b/src/syncterm/bbslist.c index 6de46d4dd6043753859145ca1389f6a530239579..0081662edb235d73a90e6ff55f097027522722cf 100644 --- a/src/syncterm/bbslist.c +++ b/src/syncterm/bbslist.c @@ -1452,6 +1452,8 @@ void load_bbslist(struct bbslist **list, size_t listsize, struct bbslist *defaul if(stricmp(shared_list, listpath)) /* don't read the same list twice */ read_list(shared_list, list, defaults, listcount, SYSTEM_BBSLIST); sort_list(list, listcount, cur, bar, current); + if(current) + free(current); } /* @@ -1503,7 +1505,7 @@ struct bbslist *show_bbslist(char *current, int connected) get_syncterm_filename(listpath, sizeof(listpath), SYNCTERM_PATH_LIST, FALSE); get_syncterm_filename(shared_list, sizeof(shared_list), SYNCTERM_PATH_LIST, TRUE); - load_bbslist(list, sizeof(list), &defaults, listpath, sizeof(listpath), shared_list, sizeof(shared_list), &listcount, &opt, &bar, current); + load_bbslist(list, sizeof(list), &defaults, listpath, sizeof(listpath), shared_list, sizeof(shared_list), &listcount, &opt, &bar, current?strdup(current):NULL); uifc.helpbuf="Help Button Hack"; uifc.list(WIN_T2B|WIN_RHT|WIN_EXTKEYS|WIN_DYN|WIN_HLP|WIN_ACT|WIN_INACT @@ -1688,7 +1690,7 @@ struct bbslist *show_bbslist(char *current, int connected) } else { add_bbs(listpath,list[listcount-1]); - load_bbslist(list, sizeof(list), &defaults, listpath, sizeof(listpath), shared_list, sizeof(shared_list), &listcount, &opt, &bar, list[listcount-1]->name); + load_bbslist(list, sizeof(list), &defaults, listpath, sizeof(listpath), shared_list, sizeof(shared_list), &listcount, &opt, &bar, list[listcount-1]?strdup(list[listcount-1]->name):NULL); oldopt=-1; } break; @@ -1739,7 +1741,7 @@ struct bbslist *show_bbslist(char *current, int connected) break; } if(edit_list(list, list[opt],listpath,FALSE)) { - load_bbslist(list, sizeof(list), &defaults, listpath, sizeof(listpath), shared_list, sizeof(shared_list), &listcount, &opt, &bar, list[opt]?list[opt]->name:NULL); + load_bbslist(list, sizeof(list), &defaults, listpath, sizeof(listpath), shared_list, sizeof(shared_list), &listcount, &opt, &bar, list[opt]?strdup(list[opt]->name):NULL); oldopt=-1; } break; @@ -1754,7 +1756,7 @@ struct bbslist *show_bbslist(char *current, int connected) uifc.msg("Cannot edit list in safe mode"); } else if(edit_list(list, list[opt],listpath,FALSE)) { - load_bbslist(list, sizeof(list), &defaults, listpath, sizeof(listpath), shared_list, sizeof(shared_list), &listcount, &opt, &bar, list[opt]?list[opt]->name:NULL); + load_bbslist(list, sizeof(list), &defaults, listpath, sizeof(listpath), shared_list, sizeof(shared_list), &listcount, &opt, &bar, list[opt]?strdup(list[opt]->name):NULL); oldopt=-1; } }