Skip to content
This repository was archived by the owner on Oct 12, 2023. It is now read-only.

Commit 14c7ba8

Browse files
committed
Update to 1.5.0
1 parent cd716a6 commit 14c7ba8

12 files changed

+26
-38
lines changed

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=AzureIoTUtility
2-
version=1.3.9
2+
version=1.5.0
33
author=Microsoft
44
maintainer=Microsoft <[email protected]>
55
sentence=Azure C shared utility library for Arduino. For the Arduino MKR1000 or Zero and WiFi Shield 101, Adafruit Huzzah and Feather M0, or SparkFun Thing.

src/AzureIoTUtility.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@
1212
#include "azure_c_shared_utility/tlsio.h"
1313
#include "azure_c_shared_utility/xlogging.h"
1414

15-
#define AzureIoTUtilityVersion "1.3.9"
15+
#define AzureIoTUtilityVersion "1.5.0"
1616

1717
#endif //AZUREIOTUTILITY_H

src/adapters/sslClient_arduino.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,12 @@ uint8_t sslClient_connected(void)
3131
return (uint8_t)sslClient.connected();
3232
}
3333

34-
int sslClient_connect(uint32_t ipAddress, uint16_t port)
34+
int sslClient_connect(const char* name, uint16_t port)
3535
{
3636
#ifdef ARDUINO_ARCH_ESP8266
3737
sslClient.setTrustAnchors(&cert);
3838
#endif
39-
IPAddress ip = IPAddress(ipAddress);
40-
return (int)sslClient.connect(ip, port);
39+
return (int)sslClient.connect(name, port);
4140
}
4241

4342
void sslClient_stop(void)

src/adapters/sslClient_arduino.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ extern "C" {
1717

1818
MOCKABLE_FUNCTION(, void, sslClient_setTimeout, unsigned long, timeout);
1919
MOCKABLE_FUNCTION(, uint8_t, sslClient_connected);
20-
MOCKABLE_FUNCTION(, int, sslClient_connect, uint32_t, ipAddress, uint16_t, port);
20+
MOCKABLE_FUNCTION(, int, sslClient_connect, const char*, name, uint16_t, port);
2121
MOCKABLE_FUNCTION(, void, sslClient_stop);
2222
MOCKABLE_FUNCTION(, size_t, sslClient_write, const uint8_t*, buf, size_t, size);
2323
MOCKABLE_FUNCTION(, size_t, sslClient_print, const char*, str);

src/adapters/tlsio_arduino.c

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ const size_t WEBSOCKET_HEADER_NO_CERT_PARAM_SIZE = sizeof(WEBSOCKET_HEADER_NO_CE
4646
typedef enum TLSIO_STATE_TAG
4747
{
4848
TLSIO_STATE_CLOSED,
49-
TLSIO_STATE_OPENING_WAITING_DNS,
5049
TLSIO_STATE_OPENING_WAITING_SOCKET,
5150
TLSIO_STATE_OPENING_WAITING_SSL,
5251
TLSIO_STATE_OPEN,
@@ -55,8 +54,7 @@ typedef enum TLSIO_STATE_TAG
5554

5655
bool is_an_opening_state(TLSIO_STATE state)
5756
{
58-
return state == TLSIO_STATE_OPENING_WAITING_DNS ||
59-
state == TLSIO_STATE_OPENING_WAITING_SOCKET ||
57+
return state == TLSIO_STATE_OPENING_WAITING_SOCKET ||
6058
state == TLSIO_STATE_OPENING_WAITING_SSL;
6159
}
6260

@@ -70,7 +68,6 @@ typedef struct TLS_IO_INSTANCE_TAG
7068
void* on_open_complete_context;
7169
TLSIO_STATE tlsio_state;
7270
STRING_HANDLE hostname;
73-
uint32_t remote_addr;
7471
uint16_t port;
7572
SINGLYLINKEDLIST_HANDLE pending_transmission_list;
7673
TLSIO_OPTIONS options;
@@ -234,7 +231,6 @@ static CONCRETE_IO_HANDLE tlsio_arduino_create(void* io_create_parameters)
234231
result->hostname = NULL;
235232
result->port = (uint16_t)tls_io_config->port;
236233
result->tlsio_state = TLSIO_STATE_CLOSED;
237-
result->hostname = NULL;
238234
result->pending_transmission_list = NULL;
239235
tlsio_options_initialize(&result->options, TLSIO_OPTION_BIT_TRUSTED_CERTS);
240236

@@ -328,7 +324,7 @@ static int tlsio_arduino_open_async(CONCRETE_IO_HANDLE tls_io,
328324

329325
/* Codes_SRS_TLSIO_30_035: [ On tlsio_open success the adapter shall enter TLSIO_STATE_EX_OPENING and return 0. ]*/
330326
// All the real work happens in dowork
331-
tls_io_instance->tlsio_state = TLSIO_STATE_OPENING_WAITING_DNS;
327+
tls_io_instance->tlsio_state = TLSIO_STATE_OPENING_WAITING_SOCKET;
332328
result = 0;
333329
}
334330
}
@@ -477,19 +473,6 @@ static void dowork_send(TLS_IO_INSTANCE* tls_io_instance)
477473
}
478474
}
479475

480-
static void dowork_poll_dns(TLS_IO_INSTANCE* tls_io_instance)
481-
{
482-
/* Codes_SRS_TLSIO_ARDUINO_21_018: [ The tlsio_arduino_create shall convert the provide hostName to an IP address. ]*/
483-
if (sslClient_hostByName(STRING_c_str(tls_io_instance->hostname), &(tls_io_instance->remote_addr)))
484-
{
485-
tls_io_instance->tlsio_state = TLSIO_STATE_OPENING_WAITING_SOCKET;
486-
}
487-
else
488-
{
489-
LogError("Host %s not found", STRING_c_str(tls_io_instance->hostname));
490-
}
491-
}
492-
493476
static void dowork_poll_socket(TLS_IO_INSTANCE* tls_io_instance)
494477
{
495478
// Nothing to do here
@@ -498,7 +481,7 @@ static void dowork_poll_socket(TLS_IO_INSTANCE* tls_io_instance)
498481

499482
static void dowork_poll_open_ssl(TLS_IO_INSTANCE* tls_io_instance)
500483
{
501-
int connect_success = sslClient_connect(tls_io_instance->remote_addr, tls_io_instance->port);
484+
int connect_success = sslClient_connect(STRING_c_str(tls_io_instance->hostname), tls_io_instance->port);
502485
if (connect_success)
503486
{
504487
/* Codes_SRS_TLSIO_30_080: [ The tlsio_dowork shall establish a TLS connection using the hostName and port provided during tlsio_open. ]*/
@@ -534,10 +517,6 @@ static void tlsio_arduino_dowork(CONCRETE_IO_HANDLE tls_io)
534517
/* Codes_SRS_TLSIO_30_075: [ If the adapter is in TLSIO_STATE_EXT_CLOSED then tlsio_dowork shall do nothing. ]*/
535518
// Waiting to be opened, nothing to do
536519
break;
537-
case TLSIO_STATE_OPENING_WAITING_DNS:
538-
LogInfo("dowork TLSIO_STATE_OPENING_WAITING_DNS");
539-
dowork_poll_dns(tls_io_instance);
540-
break;
541520
case TLSIO_STATE_OPENING_WAITING_SOCKET:
542521
LogInfo("dowork TLSIO_STATE_OPENING_WAITING_SOCKET");
543522
dowork_poll_socket(tls_io_instance);

src/adapters/tlsio_mbedtls.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,7 @@ static void mbedtls_uninit(TLS_IO_INSTANCE *tls_io_instance)
442442
{
443443
// mbedTLS cleanup...
444444
mbedtls_ssl_free(&tls_io_instance->ssl);
445+
mbedtls_ssl_session_free(&tls_io_instance->ssn);
445446
mbedtls_ssl_config_free(&tls_io_instance->config);
446447
mbedtls_x509_crt_free(&tls_io_instance->trusted_certificates_parsed);
447448
mbedtls_x509_crt_free(&tls_io_instance->owncert);

src/azure_c_shared_utility/buffer.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -540,11 +540,16 @@ int BUFFER_prepend(BUFFER_HANDLE handle1, BUFFER_HANDLE handle2)
540540
else
541541
{
542542
//put b2 ahead of b1: [b2][b1], return b1
543-
if (b2->size ==0)
543+
if (b2->size == 0)
544544
{
545545
// do nothing
546546
result = 0;
547547
}
548+
else if (b1->size + b2->size < b2->size)
549+
{
550+
LogError("Failure: size_t overflow.");
551+
result = MU_FAILURE;
552+
}
548553
else
549554
{
550555
// b2->size != 0

src/azure_c_shared_utility/constbuffer_array_batcher.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ CONSTBUFFER_ARRAY_HANDLE constbuffer_array_batcher_batch(CONSTBUFFER_ARRAY_HANDL
7272
}
7373

7474
/* Codes_SRS_CONSTBUFFER_ARRAY_BATCHER_01_007: [ constbuffer_array_batcher_batch shall allocate enough memory for all the buffer handles in all the arrays + one extra header buffer handle. ]*/
75-
all_buffers = malloc(sizeof(CONSTBUFFER_HANDLE) * (total_buffer_count + 1));
75+
uint32_t all_buffers_array_size = total_buffer_count + 1;
76+
all_buffers = malloc(sizeof(CONSTBUFFER_HANDLE) * ((size_t)all_buffers_array_size));
7677
if (all_buffers == NULL)
7778
{
7879
/* Codes_SRS_CONSTBUFFER_ARRAY_BATCHER_01_010: [ If any error occurrs, constbuffer_array_batcher_batch shall fail and return NULL. ]*/
@@ -109,8 +110,8 @@ CONSTBUFFER_ARRAY_HANDLE constbuffer_array_batcher_batch(CONSTBUFFER_ARRAY_HANDL
109110
}
110111
}
111112

112-
result = constbuffer_array_create(all_buffers, total_buffer_count + 1);
113-
for (i = 0; i < current_index; i++)
113+
result = constbuffer_array_create(all_buffers, all_buffers_array_size);
114+
for (i = 0; i < all_buffers_array_size; i++)
114115
{
115116
CONSTBUFFER_DecRef(all_buffers[i]);
116117
}

src/azure_c_shared_utility/crt_abstractions.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -597,7 +597,7 @@ float strtof_s(const char* nptr, char** endptr)
597597
break;
598598
case FST_NUMBER:
599599
val = fraction * pow(10.0, (double)exponential) * (double)signal;
600-
if ((val >= (FLT_MAX * (-1.0f))) && (val <= FLT_MAX))
600+
if ((val >= ((double)FLT_MAX * (-1.0))) && (val <= (double)FLT_MAX))
601601
{
602602
/*Codes_SRS_CRT_ABSTRACTIONS_21_016: [The strtof_s must return the float that represents the value in the initial part of the string. If any.]*/
603603
result = (float)val;

src/azure_c_shared_utility/httpapiexsas.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,9 @@ HTTPAPIEX_SAS_HANDLE HTTPAPIEX_SAS_Create(STRING_HANDLE key, STRING_HANDLE uriRe
106106
void HTTPAPIEX_SAS_Destroy(HTTPAPIEX_SAS_HANDLE handle)
107107
{
108108
/*Codes_SRS_HTTPAPIEXSAS_06_005: [If the parameter handle is NULL then HTTAPIEX_SAS_Destroy shall do nothing and return.]*/
109-
if (handle)
109+
HTTPAPIEX_SAS_STATE* state = (HTTPAPIEX_SAS_STATE*)handle;
110+
if (state)
110111
{
111-
HTTPAPIEX_SAS_STATE* state = (HTTPAPIEX_SAS_STATE*)handle;
112112
/*Codes_SRS_HTTPAPIEXSAS_06_006: [HTTAPIEX_SAS_Destroy shall deallocate any structures denoted by the parameter handle.]*/
113113
if (state->key)
114114
{

0 commit comments

Comments
 (0)