break;
case DNS_QTYPE_CNAME:
__pcap_dns_name_info((uint8_t *)dns_h, &data[10], cname);
- if (data == NULL)
- return;
if (STC_PCAP_LOG)
STC_LOGD("Name[%s] Type[%u:%s] Class[0x%04x:%s] "
"TTL[%u] Data length[%u] CName[%s]",
iptables_rule.d_iprange_type = rule->dst_iprange_type;
/* specify source and destination ip address if any */
- if (rule->src_ip1)
- inet_aton(rule->src_ip1, &iptables_rule.s_ip1);
- if (rule->src_ip2)
- inet_aton(rule->src_ip2, &iptables_rule.s_ip2);
- if (rule->dst_ip1)
- inet_aton(rule->dst_ip1, &iptables_rule.d_ip1);
- if (rule->dst_ip2)
- inet_aton(rule->dst_ip2, &iptables_rule.d_ip2);
+ if (rule->src_ip1) {
+ if (!inet_aton(rule->src_ip1, &iptables_rule.s_ip1)) {
+ ret = STC_ERROR_INVALID_PARAMETER;
+ goto free;
+ }
+ }
+
+ if (rule->src_ip2) {
+ if (!inet_aton(rule->src_ip2, &iptables_rule.s_ip2)) {
+ ret = STC_ERROR_INVALID_PARAMETER;
+ goto free;
+ }
+ }
+
+ if (rule->dst_ip1) {
+ if (!inet_aton(rule->dst_ip1, &iptables_rule.d_ip1)) {
+ ret = STC_ERROR_INVALID_PARAMETER;
+ goto free;
+ }
+ }
+
+ if (rule->dst_ip2) {
+ if (!inet_aton(rule->dst_ip2, &iptables_rule.d_ip2)) {
+ ret = STC_ERROR_INVALID_PARAMETER;
+ goto free;
+ }
+ }
if (rule->action == NFACCT_ACTION_DELETE) {
/* delete interface rule */
ret = iptables_add(&iptables_rule, iptype);
}
+free:
g_free(iptables_rule.nfacct_name);
g_free(iptables_rule.ifname);
g_free(iptables_rule.target);