Skip to content

Commit 999bbc3

Browse files
author
Juha Heiskanen
committed
Copied memory fix from PR ARMmbed#1858
Change-Id: I3c0a741dd57795911d74d3e9b2c6ac92a818bfe8
1 parent 6500fcf commit 999bbc3

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

source/DHCPv6_client/dhcpv6_client_service.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ void dhcpv6_renew(protocol_interface_info_entry_t *interface, if_address_entry_t
268268
payload_len = libdhcpv6_address_request_message_len(srv_data_ptr->clientLinkIdType, srv_data_ptr->serverLinkType, 0);
269269
payload_ptr = ns_dyn_mem_temporary_alloc(payload_len);
270270
if (payload_ptr == NULL) {
271-
addr->state_timer = 200;//Retry after? should there be maximum 20 second retry
271+
addr->state_timer = 200; //Retry after 20 seconds
272272
tr_error("Out of memory");
273273
return ;
274274
}
@@ -292,6 +292,11 @@ void dhcpv6_renew(protocol_interface_info_entry_t *interface, if_address_entry_t
292292
libdhcpv6_generic_nontemporal_address_message_write(payload_ptr, &packetReq, &nonTemporalAddress, &serverLink);
293293
// send solicit
294294
srv_data_ptr->transActionId = dhcp_service_send_req(dhcp_client.service_instance, 0, srv_data_ptr, srv_data_ptr->server_address, payload_ptr, payload_len, dhcp_solicit_resp_cb);
295+
if (srv_data_ptr->transActionId == 0) {
296+
ns_dyn_mem_free(payload_ptr);
297+
addr->state_timer = 200; //Retry after 20 seconds
298+
tr_error("DHCP renew send failed");
299+
}
295300
}
296301

297302
void dhcpv6_client_set_address(int8_t interface_id, dhcpv6_client_server_data_t *srv_data_ptr)

0 commit comments

Comments
 (0)