X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fowniptc%2Flibiptc.c;h=8f0b0f0972e1cdfaa4d0346c9141d3f65e98ffab;hb=2f2744072ab144b8130b2296327fc3382e5f7f80;hp=f7a6640fffe09b398a2de9a54d21cc9f250b3e33;hpb=91743fc0c8785f84f3976d5f5d430b1b3a7d4918;p=collectd.git diff --git a/src/owniptc/libiptc.c b/src/owniptc/libiptc.c index f7a6640f..8f0b0f09 100644 --- a/src/owniptc/libiptc.c +++ b/src/owniptc/libiptc.c @@ -744,14 +744,16 @@ static void iptcc_delete_rule(struct rule_head *r) * to be called from specific places within the parser */ static int __iptcc_p_del_policy(TC_HANDLE_T h, unsigned int num) { + const unsigned char *data; + if (h->chain_iterator_cur) { /* policy rule is last rule */ struct rule_head *pr = (struct rule_head *) h->chain_iterator_cur->rules.prev; /* save verdict */ - h->chain_iterator_cur->verdict = - *(int *)GET_TARGET(pr->entry)->data; + data = GET_TARGET(pr->entry)->data; + h->chain_iterator_cur->verdict = *(const int *)data; /* save counter and counter_map information */ h->chain_iterator_cur->counter_map.maptype = @@ -1489,6 +1491,7 @@ TC_NEXT_RULE(const STRUCT_ENTRY *prev, TC_HANDLE_T *handle) } /* How many rules in this chain? */ +#if 0 static unsigned int TC_NUM_RULES(const char *chain, TC_HANDLE_T *handle) { @@ -1504,7 +1507,9 @@ TC_NUM_RULES(const char *chain, TC_HANDLE_T *handle) return c->num_rules; } +#endif +#if 0 static const STRUCT_ENTRY * TC_GET_RULE(const char *chain, unsigned int n, TC_HANDLE_T *handle) { @@ -1526,6 +1531,7 @@ TC_GET_RULE(const char *chain, unsigned int n, TC_HANDLE_T *handle) return NULL; return r->entry; } +#endif /* Returns a pointer to the target name of this position. */ static const char *standard_target_map(int verdict) @@ -1559,6 +1565,7 @@ const char *TC_GET_TARGET(const STRUCT_ENTRY *ce, { STRUCT_ENTRY *e = (STRUCT_ENTRY *)ce; struct rule_head *r = container_of(e, struct rule_head, entry[0]); + const unsigned char *data; iptc_fn = TC_GET_TARGET; @@ -1572,7 +1579,8 @@ const char *TC_GET_TARGET(const STRUCT_ENTRY *ce, return r->jump->name; break; case IPTCC_R_STANDARD: - spos = *(int *)GET_TARGET(e)->data; + data = GET_TARGET(e)->data; + spos = *(const int *)data; DEBUGP("r=%p, spos=%d'\n", r, spos); return standard_target_map(spos); break;