diff --git a/src/sbbs3/userdat.c b/src/sbbs3/userdat.c index a2cdd7f0c79d41ce9c00b19b84b8f8ff0b08f605..abc9ce251aff7a27763a135f4e4886d0d66b4fc0 100644 --- a/src/sbbs3/userdat.c +++ b/src/sbbs3/userdat.c @@ -3055,12 +3055,16 @@ BOOL DLLCALL getmsgptrs(scfg_t* cfg, user_t* user, subscan_t* subscan, void (*pr for(i = 0; i < cfg->total_subs; i++) { if(progress != NULL) progress(cbdata, i, cfg->total_subs); - subscan[i].ptr = iniGetLongInt(ini, cfg->sub[i]->code, "ptr" , subscan[i].ptr); - subscan[i].last = iniGetLongInt(ini, cfg->sub[i]->code, "last" , subscan[i].last); - subscan[i].cfg = iniGetShortInt(ini, cfg->sub[i]->code, "cfg" , subscan[i].cfg); + str_list_t keys = iniGetSection(ini, cfg->sub[i]->code); + if(keys == NULL) + continue; + subscan[i].ptr = iniGetLongInt(keys, cfg->sub[i]->code, "ptr" , subscan[i].ptr); + subscan[i].last = iniGetLongInt(keys, cfg->sub[i]->code, "last" , subscan[i].last); + subscan[i].cfg = iniGetShortInt(keys, cfg->sub[i]->code, "cfg" , subscan[i].cfg); subscan[i].sav_ptr = subscan[i].ptr; subscan[i].sav_last = subscan[i].last; subscan[i].sav_cfg = subscan[i].cfg; + iniFreeStringList(keys); } iniFreeStringList(ini); fclose(fp);