Ticket refs #3228: QEMU - ICWMP is segfaulting

This commit is contained in:
Omar Kallel 2020-09-18 19:24:36 +01:00 committed by Amin Ben Ramdhane
parent d26cf63d0b
commit 92cdf363f5
16 changed files with 39 additions and 39 deletions

View file

@ -1980,7 +1980,7 @@ static int browseIPDiagnosticsTraceRouteRouteHopsInst(struct dmctx *dmctx, DMNOD
uci_foreach_sections_state("cwmp", "RouteHops", s) {
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 5,
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 5,
(void *)s, "routehop_instance", "routehop_alias", "cwmp", "RouteHops");
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)s, inst) == DM_STOP)
@ -1996,7 +1996,7 @@ static int browseIPDiagnosticsDownloadDiagnosticsPerConnectionResultInst(struct
uci_foreach_sections_state("cwmp", "DownloadPerConnection", s) {
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 5,
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 5,
(void *)s, "perconnection_instance", "perconnection_alias", "cwmp", "DownloadPerConnection");
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)s, inst) == DM_STOP)
@ -2012,7 +2012,7 @@ static int browseIPDiagnosticsUploadDiagnosticsPerConnectionResultInst(struct dm
uci_foreach_sections_state("cwmp", "UploadPerConnection", s) {
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 5,
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 5,
(void *)s, "perconnection_instance", "perconnection_alias", "cwmp", "UploadPerConnection");
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)s, inst) == DM_STOP)

View file

@ -66,7 +66,7 @@ static int browseSoftwareModulesDeploymentUnitInst(struct dmctx *dmctx, DMNODE *
dmubus_call("swmodules", "du_list", UBUS_ARGS{}, 0, &res);
if (res) {
dmjson_foreach_obj_in_array(res, arrobj, du_obj, j, 1, "deployment_unit") {
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_without_section, 1, ++id);
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_without_section, 1, ++id);
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)du_obj, inst) == DM_STOP)
break;
}
@ -83,7 +83,7 @@ static int browseSoftwareModulesExecutionUnitInst(struct dmctx *dmctx, DMNODE *p
dmubus_call("swmodules", "eu_list", UBUS_ARGS{}, 0, &res);
if (res) {
dmjson_foreach_obj_in_array(res, arrobj, du_obj, j, 1, "execution_unit") {
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_without_section, 1, ++id);
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_without_section, 1, ++id);
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)du_obj, inst) == DM_STOP)
break;
}

View file

@ -2276,7 +2276,7 @@ static int browseBridgingBridgePortInst(struct dmctx *dmctx, DMNODE *parent_node
browse_args.option = "br_inst";
browse_args.value = br_args->br_inst;
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 7,
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 7,
s, "bridge_port_instance", "bridge_port_alias", "dmmap_bridge_port", "bridge_port",
check_browse_section, (void *)&browse_args);
@ -2302,7 +2302,7 @@ static int browseBridgingBridgeVLANInst(struct dmctx *dmctx, DMNODE *parent_node
browse_args.option = "br_inst";
browse_args.value = br_args->br_inst;
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 7,
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 7,
s, "bridge_vlan_instance", "bridge_vlan_alias", "dmmap_bridge_vlanport", "bridge_vlan",
check_browse_section, (void *)&browse_args);
@ -2329,7 +2329,7 @@ static int browseBridgingBridgeVLANPortInst(struct dmctx *dmctx, DMNODE *parent_
browse_args.option = "br_inst";
browse_args.value = br_args->br_inst;
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 7,
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 7,
s, "bridge_vlanport_instance", "bridge_vlanport_alias", "dmmap_bridge_vlanport", "bridge_vlanport",
check_browse_section, (void *)&browse_args);

View file

@ -198,7 +198,7 @@ int os__browseProcessEntriesInst(struct dmctx *dmctx, DMNODE *parent_node, void
dmubus_call("router.system", "processes", UBUS_ARGS{}, 0, &res);
if (res) {
dmjson_foreach_obj_in_array(res, arrobj, processes, i, 1, "processes") {
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_without_section, 1, ++id);
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_without_section, 1, ++id);
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)processes, inst) == DM_STOP)
break;
}

View file

@ -2635,7 +2635,7 @@ static int browseDhcpClientIPv4Inst(struct dmctx *dmctx, DMNODE *parent_node, vo
{
char *inst, *max_inst = NULL;
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_without_section, 1, 1);
inst = handle_update_instance(3, dmctx, &max_inst, update_instance_without_section, 1, 1);
DM_LINK_INST_OBJ(dmctx, parent_node, prev_data, inst);
return 0;
}
@ -2754,7 +2754,7 @@ static int browseDHCPv4ClientSentOptionInst(struct dmctx *dmctx, DMNODE *parent_
browse_args.option = "section_name";
browse_args.value = section_name(dhcp_client_args->dhcp_client_conf);
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 7,
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 7,
dmmap_sect, "bbf_dhcpv4_sentopt_instance", "bbf_dhcpv4_sentopt_alias", "dmmap_dhcp_client", "send_option",
check_browse_section, (void *)&browse_args);
@ -2796,7 +2796,7 @@ static int browseDHCPv4ClientReqOptionInst(struct dmctx *dmctx, DMNODE *parent_n
browse_args.option = "section_name";
browse_args.value = section_name(dhcp_client_args->dhcp_client_conf);
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 7,
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 7,
dmmap_sect, "bbf_dhcpv4_reqtopt_instance", "bbf_dhcpv4_reqtopt_alias", "dmmap_dhcp_client", "req_option",
check_browse_section, (void *)&browse_args);
@ -2852,7 +2852,7 @@ static int browseDHCPv4ServerPoolOptionInst(struct dmctx *dmctx, DMNODE *parent_
browse_args.option = "section_name";
browse_args.value = section_name(curr_dhcp_args->dhcp_sec);
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 7,
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 7,
dmmap_sect, "bbf_dhcpv4_servpool_option_instance", "bbf_dhcpv4_servpool_option_alias", "dmmap_dhcp", "servpool_option",
check_browse_section, (void *)&browse_args);

View file

@ -195,7 +195,7 @@ static int browseDHCPv6ServerPoolClientInst(struct dmctx *dmctx, DMNODE *parent_
if (!jobj) break;
init_dhcpv6_client_args(&curr_dhcp_client_args, jobj, NULL, i);
i++;
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_without_section, 1, i);
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_without_section, 1, i);
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)&curr_dhcp_client_args, inst) == DM_STOP)
break;
}
@ -273,7 +273,7 @@ static int browseDHCPv6ServerPoolClientIPv6AddressInst(struct dmctx *dmctx, DMNO
break;
init_dhcpv6_client_args(&curr_dhcv6_address_args, dhcpv6_serv_pool_client->client, address_obj, i);
i++;
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_without_section, 1, i);
inst = handle_update_instance(3, dmctx, &max_inst, update_instance_without_section, 1, i);
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)&curr_dhcv6_address_args, inst) == DM_STOP)
break;
}
@ -295,7 +295,7 @@ static int browseDHCPv6ServerPoolClientIPv6PrefixInst(struct dmctx *dmctx, DMNOD
break;
init_dhcpv6_client_args(&curr_dhcv6_address_args, dhcpv6_serv_pool_client->client, address_obj, i);
i++;
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_without_section, 1, i);
inst = handle_update_instance(3, dmctx, &max_inst, update_instance_without_section, 1, i);
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)&curr_dhcv6_address_args, inst) == DM_STOP)
break;
}

View file

@ -152,7 +152,7 @@ static int browseResultInst(struct dmctx *dmctx, DMNODE *parent_node, void *prev
uci_foreach_sections_state("cwmp", "NSLookupResult", s) {
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 5,
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 5,
s, "nslookup_res_instance", "nslookup_res_alias", "cwmp", "NSLookupResult");
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)s, inst) == DM_STOP)

View file

@ -51,7 +51,7 @@ static int browseRuleInst(struct dmctx *dmctx, DMNODE *parent_node, void *prev_d
synchronize_specific_config_sections_with_dmmap("firewall", "rule", "dmmap_firewall", &dup_list);
list_for_each_entry(p, &dup_list, list) {
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 5,
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 5,
p->dmmap_section, "firewall_chain_rule_instance", "firewall_chain_rule_alias", "dmmap_firewall", "rule");
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)p->config_section, inst) == DM_STOP)

View file

@ -62,7 +62,7 @@ static int browseGRETunnelInterfaceInst(struct dmctx *dmctx, DMNODE *parent_node
browse_args.option = "section_name";
browse_args.value = section_name(dm->config_section);
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 7,
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 7,
p->dmmap_section, "greiface_instance", "greiface_alias", "dmmap_network", "interface",
check_browse_section, (void *)&browse_args);

View file

@ -40,7 +40,7 @@ int os__browseHostsHostIPv4AddressInst(struct dmctx *dmctx, DMNODE *parent_node,
int id = 0, i = 0;
dmjson_foreach_value_in_array(host_obj, ip_arr, ipv4addr, i, 1, "ipv4addr") {
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_without_section, 1, ++id);
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_without_section, 1, ++id);
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)ipv4addr, inst) == DM_STOP)
break;
}
@ -55,7 +55,7 @@ int os__browseHostsHostIPv6AddressInst(struct dmctx *dmctx, DMNODE *parent_node,
int id = 0, i = 0;
dmjson_foreach_value_in_array(host_obj, ip_arr, ipv6addr, i, 1, "ipv6addr") {
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_without_section, 1, ++id);
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_without_section, 1, ++id);
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)ipv6addr, inst) == DM_STOP)
break;
}

View file

@ -1203,7 +1203,7 @@ static int browseIPv4ForwardingInst(struct dmctx *dmctx, DMNODE *parent_node, vo
list_for_each_entry(p, &dup_list, list) {
init_args_ipv4forward(&curr_routefwdargs, p->config_section, "1", ROUTE_STATIC);
inst = handle_update_instance(1, dmctx, &max_inst, forwarding_update_instance_alias_bbfdm, 4,
inst = handle_update_instance(2, dmctx, &max_inst, forwarding_update_instance_alias_bbfdm, 4,
p->dmmap_section, "routeinstance", "routealias", &find_max);
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)&curr_routefwdargs, inst) == DM_STOP)
@ -1214,7 +1214,7 @@ static int browseIPv4ForwardingInst(struct dmctx *dmctx, DMNODE *parent_node, vo
list_for_each_entry(p, &dup_list, list) {
init_args_ipv4forward(&curr_routefwdargs, p->config_section, "1", ROUTE_DISABLED);
inst = handle_update_instance(1, dmctx, &max_inst, forwarding_update_instance_alias_bbfdm, 4,
inst = handle_update_instance(2, dmctx, &max_inst, forwarding_update_instance_alias_bbfdm, 4,
p->dmmap_section, "routeinstance", "routealias", &find_max);
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)&curr_routefwdargs, inst) == DM_STOP)
@ -1226,7 +1226,7 @@ static int browseIPv4ForwardingInst(struct dmctx *dmctx, DMNODE *parent_node, vo
uci_path_foreach_sections(bbfdm, "dmmap_route_forwarding", "route_dynamic", ss) {
init_args_ipv4forward(&curr_routefwdargs, ss, "0", ROUTE_DYNAMIC);
inst = handle_update_instance(1, dmctx, &max_inst, forwarding_update_instance_alias_bbfdm, 4,
inst = handle_update_instance(2, dmctx, &max_inst, forwarding_update_instance_alias_bbfdm, 4,
ss, "routeinstance", "routealias", &find_max);
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)&curr_routefwdargs, inst) == DM_STOP)
@ -1250,7 +1250,7 @@ static int browseIPv6ForwardingInst(struct dmctx *dmctx, DMNODE *parent_node, vo
list_for_each_entry(p, &dup_list, list) {
init_args_ipv6forward(&curr_route6fwdargs, p->config_section, "1", ROUTE_STATIC);
inst = handle_update_instance(1, dmctx, &max_inst, forwarding6_update_instance_alias_bbfdm, 4,
inst = handle_update_instance(2, dmctx, &max_inst, forwarding6_update_instance_alias_bbfdm, 4,
p->dmmap_section, "route6instance", "route6alias", &find_max);
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)&curr_route6fwdargs, inst) == DM_STOP)
@ -1261,7 +1261,7 @@ static int browseIPv6ForwardingInst(struct dmctx *dmctx, DMNODE *parent_node, vo
uci_path_foreach_sections(bbfdm, "dmmap_route_forwarding", "route6_dynamic", ss) {
init_args_ipv6forward(&curr_route6fwdargs, ss, "0", ROUTE_DYNAMIC);
inst = handle_update_instance(1, dmctx, &max_inst, forwarding6_update_instance_alias_bbfdm, 4,
inst = handle_update_instance(2, dmctx, &max_inst, forwarding6_update_instance_alias_bbfdm, 4,
ss, "route6instance", "route6alias", &find_max);
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)&curr_route6fwdargs, inst) == DM_STOP)
@ -1287,7 +1287,7 @@ static int browseRoutingRouteInformationInterfaceSettingInst(struct dmctx *dmctx
route_obj = dmjson_select_obj_in_array_idx(res, entries, 1, "route");
if(route_obj) {
entries++;
inst = handle_update_instance(3, dmctx, &max_inst, update_instance_without_section, 1, ++id);
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_without_section, 1, ++id);
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)route_obj, inst) == DM_STOP)
break;
}

View file

@ -324,7 +324,7 @@ static int browseUSBUSBHostsHostDeviceInst(struct dmctx *dmctx, DMNODE *parent_n
DMUCI_SET_VALUE_BY_SECTION(bbfdm, p->dm, "usb_host_device_parent_host_instance", parent_host_instance);
}
port.dmsect= prev_port->dmsect;
instance = handle_update_instance(1, dmctx, &instnbr, update_instance_alias, 5,
instance = handle_update_instance(2, dmctx, &instnbr, update_instance_alias, 5,
p->dm, "usb_host_device_instance", "usb_host_device_alias", "dmmap_usb", "dmmap_host_device");
if (DM_LINK_INST_OBJ(dmctx, parent_node, &port, instance) == DM_STOP)
break;
@ -352,7 +352,7 @@ static int browseUSBUSBHostsHostDeviceConfigurationInst(struct dmctx *dmctx, DMN
init_usb_port(s, usb_dev->folder_name, usb_dev->folder_path, &port);
handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 5,
handle_update_instance(3, dmctx, &max_inst, update_instance_alias, 5,
s, "usb_device_conf_instance", "usb_device_conf_alias", "dmmap_usb", "usb_device_conf");
DM_LINK_INST_OBJ(dmctx, parent_node, &port, "1");
@ -385,7 +385,7 @@ static int browseUSBUSBHostsHostDeviceConfigurationInterfaceInst(struct dmctx *d
init_usb_port(dmmap_sect, ent->d_name, sysfs_rep_path, &port);
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 5,
inst = handle_update_instance(4, dmctx, &max_inst, update_instance_alias, 5,
dmmap_sect, "usb_device_conf_iface_instance", "usb_device_conf_iface_alias", "dmmap_usb", "usb_device_conf_interface");
if (DM_LINK_INST_OBJ(dmctx, parent_node, &port, inst) == DM_STOP)

View file

@ -538,7 +538,7 @@ int os__browseWifiNeighboringWiFiDiagnosticResultInst(struct dmctx *dmctx, DMNOD
dmubus_call(object, "scanresults", UBUS_ARGS{}, 0, &res);
if (res) {
dmjson_foreach_obj_in_array(res, arrobj, accesspoints, i, 1, "accesspoints") {
inst = handle_update_instance(3, dmctx, &max_inst, update_instance_without_section, 1, ++id);
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_without_section, 1, ++id);
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)accesspoints, inst) == DM_STOP)
return 0;
}
@ -626,7 +626,7 @@ int os__browse_wifi_associated_device(struct dmctx *dmctx, DMNODE *parent_node,
dmubus_call(object, "stations", UBUS_ARGS{}, 0, &res);
if (res) {
dmjson_foreach_obj_in_array(res, arrobj, stations, i, 1, "stations") {
inst = handle_update_instance(3, dmctx, &max_inst, update_instance_without_section, 1, ++id);
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_without_section, 1, ++id);
if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)stations, inst) == DM_STOP)
return 0;
}

View file

@ -2245,7 +2245,7 @@ static int browseWiFiEndPointProfileInst(struct dmctx *dmctx, DMNODE *parent_nod
dmuci_add_section_bbfdm("dmmap_wireless", "ep_profile", &s, &v);
DMUCI_SET_VALUE_BY_SECTION(bbfdm, s, "ep_key", ep_instance);
handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 5,
handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 5,
s, "ep_profile_instance", "ep_profile_alias", "dmmap_wireless", "wifi-iface");
DM_LINK_INST_OBJ(dmctx, parent_node, ep_args->wifi_enp_sec, "1");

View file

@ -589,7 +589,7 @@ static int browse_igmps_filter_inst(struct dmctx *dmctx, DMNODE *parent_node, vo
browse_args.option = "section_name";
browse_args.value = section_name((struct uci_section *)prev_data);
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 7,
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 7,
p->dmmap_section, "filter_instance", "filter_alias", "dmmap_mcast", "snooping_filter",
check_browse_section, (void *)&browse_args);
@ -1081,7 +1081,7 @@ static int browse_igmpp_interface_inst(struct dmctx *dmctx, DMNODE *parent_node,
browse_args.option = "section_name";
browse_args.value = section_name((struct uci_section *)prev_data);
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 7,
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 7,
p->dmmap_section, "iface_instance", "iface_alias", "dmmap_mcast", "proxy_interface",
check_browse_section, (void *)&browse_args);
@ -1176,7 +1176,7 @@ static int browse_igmpp_filter_inst(struct dmctx *dmctx, DMNODE *parent_node, vo
browse_args.option = "section_name";
browse_args.value = section_name((struct uci_section *)prev_data);
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 7,
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 7,
p->dmmap_section, "filter_instance", "filter_alias", "dmmap_mcast", "proxy_filter",
check_browse_section, (void *)&browse_args);

View file

@ -285,7 +285,7 @@ static int browse_mlds_filter_inst(struct dmctx *dmctx, DMNODE *parent_node, voi
browse_args.option = "section_name";
browse_args.value = section_name((struct uci_section *)prev_data);
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 7,
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 7,
p->dmmap_section, "filter_instance", "filter_alias", "dmmap_mcast", "snooping_filter",
check_browse_section, (void *)&browse_args);
@ -410,7 +410,7 @@ static int browse_mldp_interface_inst(struct dmctx *dmctx, DMNODE *parent_node,
browse_args.option = "section_name";
browse_args.value = section_name((struct uci_section *)prev_data);
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 7,
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 7,
p->dmmap_section, "iface_instance", "iface_alias", "dmmap_mcast", "proxy_interface",
check_browse_section, (void *)&browse_args);
@ -459,7 +459,7 @@ static int browse_mldp_filter_inst(struct dmctx *dmctx, DMNODE *parent_node, voi
browse_args.option = "section_name";
browse_args.value = section_name((struct uci_section *)prev_data);
inst = handle_update_instance(1, dmctx, &max_inst, update_instance_alias, 7,
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 7,
p->dmmap_section, "filter_instance", "filter_alias", "dmmap_mcast", "proxy_filter",
check_browse_section, (void *)&browse_args);