diff --git a/src/modbus-rtu.c b/src/modbus-rtu.c index 7aa3852..6251f7d 100644 --- a/src/modbus-rtu.c +++ b/src/modbus-rtu.c @@ -1151,6 +1151,7 @@ modbus_t* modbus_new_rtu(const char *device, ctx->backend = &_modbus_rtu_backend; ctx->backend_data = (modbus_rtu_t *) malloc(sizeof(modbus_rtu_t)); ctx_rtu = (modbus_rtu_t *)ctx->backend_data; + ctx_rtu->device = NULL; /* Check device argument */ if (device == NULL || (*device) == 0) { diff --git a/tests/unit-test-client.c b/tests/unit-test-client.c index 1df9d79..21cab0c 100644 --- a/tests/unit-test-client.c +++ b/tests/unit-test-client.c @@ -835,6 +835,16 @@ int main(int argc, char *argv[]) goto close; } + /* Test init functions */ + printf("\nTEST INVALID INITIALIZATION:\n"); + ctx = modbus_new_rtu(NULL, 0, 'A', 0, 0); + if (ctx == NULL && errno == EINVAL) { + printf("OK\n"); + } else { + printf("FAILED\n"); + goto close; + } + printf("\nALL TESTS PASS WITH SUCCESS.\n"); close: