mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2025-12-10 07:44:50 +01:00
42 lines
1.9 KiB
Diff
42 lines
1.9 KiB
Diff
diff --git a/src/core/mqtt.c b/src/core/mqtt.c
|
|
index 04a1a9c..8cb2ad7 100644
|
|
--- a/src/core/mqtt.c
|
|
+++ b/src/core/mqtt.c
|
|
@@ -234,6 +234,8 @@ void HandleMqttDisconnect(mqtt_client_t *client);
|
|
#define DEFINE_MQTT_TrustCertVerifyCallbackIndex(index) \
|
|
int MQTT_TrustCertVerifyCallback_##index (int preverify_ok, X509_STORE_CTX *x509_ctx) \
|
|
{\
|
|
+ if (index >= MAX_MQTT_CLIENTS) \
|
|
+ return 0; \
|
|
return DEVICE_SECURITY_TrustCertVerifyCallbackWithCertChain(preverify_ok, x509_ctx, &mqtt_clients[index].cert_chain);\
|
|
}
|
|
|
|
@@ -244,6 +246,11 @@ DEFINE_MQTT_TrustCertVerifyCallbackIndex(1);
|
|
DEFINE_MQTT_TrustCertVerifyCallbackIndex(2);
|
|
DEFINE_MQTT_TrustCertVerifyCallbackIndex(3);
|
|
DEFINE_MQTT_TrustCertVerifyCallbackIndex(4);
|
|
+DEFINE_MQTT_TrustCertVerifyCallbackIndex(5);
|
|
+DEFINE_MQTT_TrustCertVerifyCallbackIndex(6);
|
|
+DEFINE_MQTT_TrustCertVerifyCallbackIndex(7);
|
|
+DEFINE_MQTT_TrustCertVerifyCallbackIndex(8);
|
|
+DEFINE_MQTT_TrustCertVerifyCallbackIndex(9);
|
|
// Add more, with incrementing indexes here, if you change MAX_MQTT_CLIENTS
|
|
|
|
//------------------------------------------------------------------------------------
|
|
@@ -254,10 +261,15 @@ ssl_verify_callback_t* mqtt_verify_callbacks[] = {
|
|
MQTT_TrustCertVerifyCallbackIndex(2),
|
|
MQTT_TrustCertVerifyCallbackIndex(3),
|
|
MQTT_TrustCertVerifyCallbackIndex(4),
|
|
+ MQTT_TrustCertVerifyCallbackIndex(5),
|
|
+ MQTT_TrustCertVerifyCallbackIndex(6),
|
|
+ MQTT_TrustCertVerifyCallbackIndex(7),
|
|
+ MQTT_TrustCertVerifyCallbackIndex(8),
|
|
+ MQTT_TrustCertVerifyCallbackIndex(9),
|
|
// Add more, with incrementing indexes here, if you change MAX_MQTT_CLIENTS
|
|
};
|
|
|
|
-USP_COMPILEASSERT( ((sizeof(mqtt_verify_callbacks)/sizeof(ssl_verify_callback_t*)) == MAX_MQTT_CLIENTS),
|
|
+USP_COMPILEASSERT( ((sizeof(mqtt_verify_callbacks)/sizeof(ssl_verify_callback_t*)) >= MAX_MQTT_CLIENTS),
|
|
"There must be MAX_MQTT_CLIENTS callbacks defined");
|
|
|
|
/*********************************************************************//**
|