aboutsummaryrefslogtreecommitdiffstats
path: root/src/sim
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2021-01-25 15:16:29 +0100
committerAndreas Eversberg <jolly@eversberg.eu>2021-03-07 10:38:38 +0100
commit8c0a25f3b0f5ab264333c25ca30145e5f49dcb4f (patch)
treedc9f983c6c30f6ce8b2df218fb610a18da00857d /src/sim
parent22cb70fb1b2c628383c122aafcfdccd3070f269a (diff)
Added special strdup to liboptions, to prevent memory leaks for option strings
If you are doing memory leak debugging you don't want to see any leaks when stopping the program.
Diffstat (limited to 'src/sim')
-rw-r--r--src/sim/main.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/sim/main.c b/src/sim/main.c
index e0124d0..5178bef 100644
--- a/src/sim/main.c
+++ b/src/sim/main.c
@@ -148,42 +148,42 @@ int handle_options(int short_option, int argi, char **argv)
}
break;
case 's':
- serialdev = strdup(argv[argi]);
+ serialdev = options_strdup(argv[argi]);
break;
case 'b':
baudrate = atoi(argv[argi]);
break;
case 'E':
- eeprom_name = strdup(argv[argi]);
+ eeprom_name = options_strdup(argv[argi]);
break;
case 'F':
- futln = strdup(argv[argi]);
+ futln = options_strdup(argv[argi]);
break;
case OPT_SICHERUNG:
- sicherung = strdup(argv[argi]);
+ sicherung = options_strdup(argv[argi]);
break;
case OPT_KARTEN:
- karten = strdup(argv[argi]);
+ karten = options_strdup(argv[argi]);
break;
case OPT_SONDER:
- sonder = strdup(argv[argi]);
+ sonder = options_strdup(argv[argi]);
break;
case OPT_WARTUNG:
- wartung = strdup(argv[argi]);
+ wartung = options_strdup(argv[argi]);
break;
case 'P':
- pin = strdup(argv[argi]);
+ pin = options_strdup(argv[argi]);
break;
case 'D':
if (dir_count == MAX_DIR_COUNT)
break;
dir_location[dir_count] = atoi(argv[argi + 0]);
- dir_number[dir_count] = strdup(argv[argi + 1]);
- dir_name[dir_count] = strdup(argv[argi + 2]);
+ dir_number[dir_count] = options_strdup(argv[argi + 1]);
+ dir_name[dir_count] = options_strdup(argv[argi + 2]);
dir_count++;
break;
case 'A':
- auth = strdup(argv[argi]);
+ auth = options_strdup(argv[argi]);
break;
default:
return -EINVAL;
@@ -491,6 +491,8 @@ error:
if (serial)
serial_close(serial);
+ options_free();
+
return 0;
}