Browse Source

Fix stupid sizeof on char*

Thanks Giampaolo Bellini.
Stéphane Raimbault 12 years ago
parent
commit
db3b8525fd
1 changed files with 2 additions and 1 deletions
  1. 2 1
      src/modbus-rtu.c

+ 2 - 1
src/modbus-rtu.c

@@ -1030,7 +1030,8 @@ modbus_t* modbus_new_rtu(const char *device,
     ctx->backend_data = (modbus_rtu_t *) malloc(sizeof(modbus_rtu_t));
     ctx->backend_data = (modbus_rtu_t *) malloc(sizeof(modbus_rtu_t));
     ctx_rtu = (modbus_rtu_t *)ctx->backend_data;
     ctx_rtu = (modbus_rtu_t *)ctx->backend_data;
 
 
-    device_size = sizeof(device);
+    /* Device name and \0 */
+    device_size = (strlen(device) + 1) * sizeof(char);
     if (device_size == 0) {
     if (device_size == 0) {
         fprintf(stderr, "The device string is empty\n");
         fprintf(stderr, "The device string is empty\n");
         modbus_free(ctx);
         modbus_free(ctx);