Commit 04cde66b802b7744da7127ef0a9807912e2445ac

Authored by Stéphane Raimbault
1 parent eac43475

Fix free() calls ordering in modbus_mapping_new

Reported by Viet Nguyen Quoc.
Showing 1 changed file with 9 additions and 9 deletions
src/modbus.c
@@ -1358,8 +1358,8 @@ modbus_mapping_t* modbus_mapping_new(int nb_bits, int nb_input_bits, @@ -1358,8 +1358,8 @@ modbus_mapping_t* modbus_mapping_new(int nb_bits, int nb_input_bits,
1358 mb_mapping->tab_input_bits = 1358 mb_mapping->tab_input_bits =
1359 (uint8_t *) malloc(nb_input_bits * sizeof(uint8_t)); 1359 (uint8_t *) malloc(nb_input_bits * sizeof(uint8_t));
1360 if (mb_mapping->tab_input_bits == NULL) { 1360 if (mb_mapping->tab_input_bits == NULL) {
1361 - free(mb_mapping);  
1362 free(mb_mapping->tab_bits); 1361 free(mb_mapping->tab_bits);
  1362 + free(mb_mapping);
1363 return NULL; 1363 return NULL;
1364 } 1364 }
1365 memset(mb_mapping->tab_input_bits, 0, nb_input_bits * sizeof(uint8_t)); 1365 memset(mb_mapping->tab_input_bits, 0, nb_input_bits * sizeof(uint8_t));
@@ -1373,9 +1373,9 @@ modbus_mapping_t* modbus_mapping_new(int nb_bits, int nb_input_bits, @@ -1373,9 +1373,9 @@ modbus_mapping_t* modbus_mapping_new(int nb_bits, int nb_input_bits,
1373 mb_mapping->tab_registers = 1373 mb_mapping->tab_registers =
1374 (uint16_t *) malloc(nb_registers * sizeof(uint16_t)); 1374 (uint16_t *) malloc(nb_registers * sizeof(uint16_t));
1375 if (mb_mapping->tab_registers == NULL) { 1375 if (mb_mapping->tab_registers == NULL) {
1376 - free(mb_mapping);  
1377 - free(mb_mapping->tab_bits);  
1378 free(mb_mapping->tab_input_bits); 1376 free(mb_mapping->tab_input_bits);
  1377 + free(mb_mapping->tab_bits);
  1378 + free(mb_mapping);
1379 return NULL; 1379 return NULL;
1380 } 1380 }
1381 memset(mb_mapping->tab_registers, 0, nb_registers * sizeof(uint16_t)); 1381 memset(mb_mapping->tab_registers, 0, nb_registers * sizeof(uint16_t));
@@ -1389,10 +1389,10 @@ modbus_mapping_t* modbus_mapping_new(int nb_bits, int nb_input_bits, @@ -1389,10 +1389,10 @@ modbus_mapping_t* modbus_mapping_new(int nb_bits, int nb_input_bits,
1389 mb_mapping->tab_input_registers = 1389 mb_mapping->tab_input_registers =
1390 (uint16_t *) malloc(nb_input_registers * sizeof(uint16_t)); 1390 (uint16_t *) malloc(nb_input_registers * sizeof(uint16_t));
1391 if (mb_mapping->tab_input_registers == NULL) { 1391 if (mb_mapping->tab_input_registers == NULL) {
1392 - free(mb_mapping);  
1393 - free(mb_mapping->tab_bits);  
1394 - free(mb_mapping->tab_input_bits);  
1395 free(mb_mapping->tab_registers); 1392 free(mb_mapping->tab_registers);
  1393 + free(mb_mapping->tab_input_bits);
  1394 + free(mb_mapping->tab_bits);
  1395 + free(mb_mapping);
1396 return NULL; 1396 return NULL;
1397 } 1397 }
1398 memset(mb_mapping->tab_input_registers, 0, 1398 memset(mb_mapping->tab_input_registers, 0,
@@ -1405,10 +1405,10 @@ modbus_mapping_t* modbus_mapping_new(int nb_bits, int nb_input_bits, @@ -1405,10 +1405,10 @@ modbus_mapping_t* modbus_mapping_new(int nb_bits, int nb_input_bits,
1405 /* Frees the 4 arrays */ 1405 /* Frees the 4 arrays */
1406 void modbus_mapping_free(modbus_mapping_t *mb_mapping) 1406 void modbus_mapping_free(modbus_mapping_t *mb_mapping)
1407 { 1407 {
1408 - free(mb_mapping->tab_bits);  
1409 - free(mb_mapping->tab_input_bits);  
1410 - free(mb_mapping->tab_registers);  
1411 free(mb_mapping->tab_input_registers); 1408 free(mb_mapping->tab_input_registers);
  1409 + free(mb_mapping->tab_registers);
  1410 + free(mb_mapping->tab_input_bits);
  1411 + free(mb_mapping->tab_bits);
1412 free(mb_mapping); 1412 free(mb_mapping);
1413 } 1413 }
1414 1414