Commit 04cde66b802b7744da7127ef0a9807912e2445ac
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 | 1358 | mb_mapping->tab_input_bits = |
| 1359 | 1359 | (uint8_t *) malloc(nb_input_bits * sizeof(uint8_t)); |
| 1360 | 1360 | if (mb_mapping->tab_input_bits == NULL) { |
| 1361 | - free(mb_mapping); | |
| 1362 | 1361 | free(mb_mapping->tab_bits); |
| 1362 | + free(mb_mapping); | |
| 1363 | 1363 | return NULL; |
| 1364 | 1364 | } |
| 1365 | 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 | 1373 | mb_mapping->tab_registers = |
| 1374 | 1374 | (uint16_t *) malloc(nb_registers * sizeof(uint16_t)); |
| 1375 | 1375 | if (mb_mapping->tab_registers == NULL) { |
| 1376 | - free(mb_mapping); | |
| 1377 | - free(mb_mapping->tab_bits); | |
| 1378 | 1376 | free(mb_mapping->tab_input_bits); |
| 1377 | + free(mb_mapping->tab_bits); | |
| 1378 | + free(mb_mapping); | |
| 1379 | 1379 | return NULL; |
| 1380 | 1380 | } |
| 1381 | 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 | 1389 | mb_mapping->tab_input_registers = |
| 1390 | 1390 | (uint16_t *) malloc(nb_input_registers * sizeof(uint16_t)); |
| 1391 | 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 | 1392 | free(mb_mapping->tab_registers); |
| 1393 | + free(mb_mapping->tab_input_bits); | |
| 1394 | + free(mb_mapping->tab_bits); | |
| 1395 | + free(mb_mapping); | |
| 1396 | 1396 | return NULL; |
| 1397 | 1397 | } |
| 1398 | 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 | 1405 | /* Frees the 4 arrays */ |
| 1406 | 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 | 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 | 1412 | free(mb_mapping); |
| 1413 | 1413 | } |
| 1414 | 1414 | ... | ... |