if(!isdigit(topic[pos]))
break;
}
- if(advtopic_index < 0 || advtopic_index > MAXADVTOPICENTRIES)
+ if(advtopic_index < 0 || advtopic_index >= MAXADVTOPICENTRIES)
{
//invalid id!
- reply("CSMSG_ADVTOPIC_INVALID_ID", advtopic_index);
+ reply("CSMSG_ADVTOPIC_INVALID_ID", advtopic_index+1);
return 0;
}
if(cData->advtopic[advtopic_index])
new_topic[dpos++] = *ptr; //is % again
break;
}
- ptr--;
advtopic_index--; //no zero base
if(!cData->advtopic[advtopic_index])
break; //just leave it empty
break;
case '\\':
ptr++; /* and fall through */
+ if(!*ptr) break;
default:
new_topic[dpos++] = *ptr;
+ ptr++;
break;
}
- ptr++;
}
} else {
while((tchar = topic_mask[pos++]) && (dpos <= TOPICLEN))