diff options
Diffstat (limited to 'plugins/imudp/imudp.c')
-rw-r--r-- | plugins/imudp/imudp.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/plugins/imudp/imudp.c b/plugins/imudp/imudp.c index 5a1d9e8b..6ce8039f 100644 --- a/plugins/imudp/imudp.c +++ b/plugins/imudp/imudp.c @@ -117,8 +117,9 @@ static rsRetVal addListner(void __attribute__((unused)) *pVal, uchar *pNewVal) if(udpLstnSocks == NULL) { /* esay, we can just replace it */ udpLstnSocks = newSocks; +RUNLOG_VAR("%d", newSocks[0]); CHKmalloc(udpRulesets = (ruleset_t**) malloc(sizeof(ruleset_t*) * (newSocks[0] + 1))); - for(iDst = 1 ; iDst < newSocks[0] ; ++iDst) + for(iDst = 1 ; iDst <= newSocks[0] ; ++iDst) udpRulesets[iDst] = pBindRuleset; } else { /* we need to add them */ @@ -136,13 +137,13 @@ static rsRetVal addListner(void __attribute__((unused)) *pVal, uchar *pNewVal) } else { /* ready to copy */ iDst = 1; - for(iSrc = 1 ; iSrc <= udpLstnSocks[0] ; ++iSrc) { - tmpSocks[iDst++] = udpLstnSocks[iSrc]; - tmpRulesets[iDst++] = udpRulesets[iSrc]; + for(iSrc = 1 ; iSrc <= udpLstnSocks[0] ; ++iSrc, ++iDst) { + tmpSocks[iDst] = udpLstnSocks[iSrc]; + tmpRulesets[iDst] = udpRulesets[iSrc]; } - for(iSrc = 1 ; iSrc <= newSocks[0] ; ++iSrc) { - tmpSocks[iDst++] = newSocks[iSrc]; - tmpRulesets[iDst++] = pBindRuleset; + for(iSrc = 1 ; iSrc <= newSocks[0] ; ++iSrc, ++iDst) { + tmpSocks[iDst] = newSocks[iSrc]; + tmpRulesets[iDst] = pBindRuleset; } tmpSocks[0] = udpLstnSocks[0] + newSocks[0]; free(newSocks); |