mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-05 13:44:32 +02:00
coap: pass null-terminated string to gethostbyname
coap client parse a string by `coap_split_uri`,fetch host should by `host.length` otherwise, would cause `gethostbyname` failed because of inappropriate parameter.
This commit is contained in:
@@ -79,7 +79,7 @@ static void coap_example_task(void *p)
|
|||||||
coap_pdu_t* request = NULL;
|
coap_pdu_t* request = NULL;
|
||||||
const char* server_uri = COAP_DEFAULT_DEMO_URI;
|
const char* server_uri = COAP_DEFAULT_DEMO_URI;
|
||||||
uint8_t get_method = 1;
|
uint8_t get_method = 1;
|
||||||
|
char* phostname = NULL;
|
||||||
while (1) {
|
while (1) {
|
||||||
/* Wait for the callback to set the CONNECTED_BIT in the
|
/* Wait for the callback to set the CONNECTED_BIT in the
|
||||||
event group.
|
event group.
|
||||||
@@ -93,7 +93,16 @@ static void coap_example_task(void *p)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
hp = gethostbyname((const char *)uri.host.s);
|
phostname = (char *)calloc(1, uri.host.length + 1);
|
||||||
|
|
||||||
|
if (phostname == NULL) {
|
||||||
|
ESP_LOGE(TAG, "calloc failed");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(phostname, uri.host.s, uri.host.length);
|
||||||
|
hp = gethostbyname(phostname);
|
||||||
|
free(phostname);
|
||||||
|
|
||||||
if (hp == NULL) {
|
if (hp == NULL) {
|
||||||
ESP_LOGE(TAG, "DNS lookup failed");
|
ESP_LOGE(TAG, "DNS lookup failed");
|
||||||
|
Reference in New Issue
Block a user