From 55bd5054e6964f8242d02b30e56b27d76ae786ce Mon Sep 17 00:00:00 2001 From: Stéphane Raimbault Date: Fri, 13 Dec 2013 18:58:17 +0100 Subject: [PATCH] Initialize device argument to NULL on malloc (closes #184) --- src/modbus-rtu.c | 1 + tests/unit-test-client.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 0 deletions(-) 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: -- libgit2 0.21.4