Skip to content
Snippets Groups Projects
Commit b944e068 authored by Rob Swindell's avatar Rob Swindell :speech_balloon:
Browse files

More use of is_valid_sub|dirnum()

No obvious bug fixes here, just future proofing.
parent 2072ac73
No related branches found
No related tags found
1 merge request!463MRC mods by Codefenix (2024-10-20)
Pipeline #4481 passed
......@@ -1492,7 +1492,7 @@ const char* sbbs_t::atcode(char* sp, char* str, size_t maxlen, int* pmode, bool
if(SMB_IS_OPEN(&smb)) {
if(smb.subnum==INVALID_SUB)
return("Local");
if(smb.subnum<cfg.total_subs)
if(is_valid_subnum(smb.subnum))
return(cfg.grp[cfg.sub[smb.subnum]->grp]->sname);
}
return(usrgrps ? cfg.grp[usrgrp[curgrp]]->sname : nulstr);
......@@ -1502,7 +1502,7 @@ const char* sbbs_t::atcode(char* sp, char* str, size_t maxlen, int* pmode, bool
if(SMB_IS_OPEN(&smb)) {
if(smb.subnum==INVALID_SUB)
return("Local");
if(smb.subnum<cfg.total_subs)
if(is_valid_subnum(smb.subnum))
return(cfg.grp[cfg.sub[smb.subnum]->grp]->lname);
}
return(usrgrps ? cfg.grp[usrgrp[curgrp]]->lname : nulstr);
......@@ -1539,7 +1539,7 @@ const char* sbbs_t::atcode(char* sp, char* str, size_t maxlen, int* pmode, bool
if(SMB_IS_OPEN(&smb)) {
if(smb.subnum==INVALID_SUB)
return("Mail");
else if(smb.subnum<cfg.total_subs)
else if(is_valid_subnum(smb.subnum))
return(cfg.sub[smb.subnum]->sname);
}
return(usrgrps ? cfg.sub[usrsub[curgrp][cursub[curgrp]]]->sname : nulstr);
......@@ -1549,7 +1549,7 @@ const char* sbbs_t::atcode(char* sp, char* str, size_t maxlen, int* pmode, bool
if(SMB_IS_OPEN(&smb)) {
if(smb.subnum==INVALID_SUB)
return("Mail");
else if(smb.subnum<cfg.total_subs)
else if(is_valid_subnum(smb.subnum))
return(cfg.sub[smb.subnum]->lname);
}
return(usrgrps ? cfg.sub[usrsub[curgrp][cursub[curgrp]]]->lname : nulstr);
......@@ -1935,7 +1935,7 @@ const char* sbbs_t::atcode(char* sp, char* str, size_t maxlen, int* pmode, bool
return str;
}
if(!strcmp(sp,"SMB_AREA")) {
if(smb.subnum!=INVALID_SUB && smb.subnum<cfg.total_subs)
if(is_valid_subnum(smb.subnum))
safe_snprintf(str,maxlen,"%s %s"
,cfg.grp[cfg.sub[smb.subnum]->grp]->sname
,cfg.sub[smb.subnum]->sname);
......@@ -1944,7 +1944,7 @@ const char* sbbs_t::atcode(char* sp, char* str, size_t maxlen, int* pmode, bool
return(str);
}
if(!strcmp(sp,"SMB_AREA_DESC")) {
if(smb.subnum!=INVALID_SUB && smb.subnum<cfg.total_subs)
if(is_valid_subnum(smb.subnum))
safe_snprintf(str,maxlen,"%s %s"
,cfg.grp[cfg.sub[smb.subnum]->grp]->lname
,cfg.sub[smb.subnum]->lname);
......@@ -1953,43 +1953,43 @@ const char* sbbs_t::atcode(char* sp, char* str, size_t maxlen, int* pmode, bool
return(str);
}
if(!strcmp(sp,"SMB_GROUP")) {
if(smb.subnum!=INVALID_SUB && smb.subnum<cfg.total_subs)
if(is_valid_subnum(smb.subnum))
return(cfg.grp[cfg.sub[smb.subnum]->grp]->sname);
return(nulstr);
}
if(!strcmp(sp,"SMB_GROUP_DESC")) {
if(smb.subnum!=INVALID_SUB && smb.subnum<cfg.total_subs)
if(is_valid_subnum(smb.subnum))
return(cfg.grp[cfg.sub[smb.subnum]->grp]->lname);
return(nulstr);
}
if(!strcmp(sp,"SMB_GROUP_NUM")) {
if(smb.subnum!=INVALID_SUB && smb.subnum<cfg.total_subs)
if(is_valid_subnum(smb.subnum))
safe_snprintf(str,maxlen,"%u",getusrgrp(smb.subnum));
return(str);
}
if(!strcmp(sp,"SMB_SUB")) {
if(smb.subnum==INVALID_SUB)
return("Mail");
else if(smb.subnum<cfg.total_subs)
else if(is_valid_subnum(smb.subnum))
return(cfg.sub[smb.subnum]->sname);
return(nulstr);
}
if(!strcmp(sp,"SMB_SUB_DESC")) {
if(smb.subnum==INVALID_SUB)
return("Mail");
else if(smb.subnum<cfg.total_subs)
else if(is_valid_subnum(smb.subnum))
return(cfg.sub[smb.subnum]->lname);
return(nulstr);
}
if(!strcmp(sp,"SMB_SUB_CODE")) {
if(smb.subnum==INVALID_SUB)
return("MAIL");
else if(smb.subnum<cfg.total_subs)
else if(is_valid_subnum(smb.subnum))
return(cfg.sub[smb.subnum]->code);
return(nulstr);
}
if(!strcmp(sp,"SMB_SUB_NUM")) {
if(smb.subnum!=INVALID_SUB && smb.subnum<cfg.total_subs)
if(is_valid_subnum(smb.subnum))
safe_snprintf(str,maxlen,"%u",getusrsub(smb.subnum));
return(str);
}
......@@ -2024,7 +2024,7 @@ const char* sbbs_t::atcode(char* sp, char* str, size_t maxlen, int* pmode, bool
/* Currently viewed file */
if(current_file != NULL) {
if(current_file->dir < cfg.total_dirs) {
if(is_valid_dirnum(current_file->dir)) {
if(strcmp(sp, "FILE_AREA") == 0) {
safe_snprintf(str, maxlen, "%s %s"
,cfg.lib[cfg.dir[current_file->dir]->lib]->sname
......
......@@ -497,7 +497,7 @@ bool batch_file_add(scfg_t* cfg, uint usernumber, enum XFER_TYPE type, file_t* f
return false;
}
fprintf(fp, "\n[%s]\n", f->name);
if(f->dir >= 0 && f->dir < cfg->total_dirs)
if(is_valid_dirnum(cfg, f->dir))
fprintf(fp, "dir=%s\n", cfg->dir[f->dir]->code);
if(f->desc != NULL)
fprintf(fp, "desc=%s\n", f->desc);
......@@ -515,7 +515,7 @@ bool batch_file_get(scfg_t* cfg, str_list_t ini, const char* filename, file_t* f
if(!iniSectionExists(ini, filename))
return false;
f->dir = batch_file_dir(cfg, ini, filename);
if(f->dir < 0 || f->dir >= cfg->total_dirs)
if(!is_valid_dirnum(cfg, f->dir))
return false;
smb_hfield_str(f, SMB_FILENAME, filename);
if((p = iniGetString(ini, filename, "desc", NULL, value)) != NULL)
......@@ -577,7 +577,7 @@ ulong getuserxfers(scfg_t* cfg, const char* from, uint to)
if(cfg == NULL)
return 0;
if(cfg->user_dir >= cfg->total_dirs)
if(!is_valid_dirnum(cfg, cfg->user_dir))
return 0;
if(smb_open_dir(cfg, &smb, cfg->user_dir) != SMB_SUCCESS)
......@@ -616,7 +616,7 @@ char* getfilepath(scfg_t* cfg, file_t* f, char* path)
{
bool fchk = true;
const char* name = f->name == NULL ? f->file_idx.name : f->name;
if(f->dir >= cfg->total_dirs)
if(!is_valid_dirnum(cfg, f->dir))
safe_snprintf(path, MAX_PATH, "%s%s", cfg->temp_dir, name);
else {
safe_snprintf(path, MAX_PATH, "%s%s", cfg->dir[f->dir]->path, name);
......@@ -630,7 +630,7 @@ char* getfilepath(scfg_t* cfg, file_t* f, char* path)
char* getfilevpath(scfg_t* cfg, file_t* f, char* path)
{
const char* name = f->name == NULL ? f->file_idx.name : f->name;
if(f->dir >= cfg->total_dirs)
if(!is_valid_dirnum(cfg, f->dir))
return "";
safe_snprintf(path, MAX_PATH, "%s/%s/%s"
,cfg->lib[cfg->dir[f->dir]->lib]->vdir, cfg->dir[f->dir]->vdir, name);
......
......@@ -1185,7 +1185,7 @@ js_downloaded_file(JSContext *cx, uintN argc, jsval *arglist)
rc=JS_SUSPENDREQUEST(cx);
js_getuserdat(scfg,p);
if(fname != NULL && dirnum != INVALID_DIR && dirnum < scfg->total_dirs) {
if(fname != NULL && is_valid_dirnum(scfg, dirnum)) {
JS_SET_RVAL(cx, arglist, BOOLEAN_TO_JSVAL(user_downloaded_file(scfg, p->user, p->client, dirnum, fname, bytes)));
} else {
JS_SET_RVAL(cx, arglist, BOOLEAN_TO_JSVAL(user_downloaded(scfg, p->user, files, bytes)));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment