summaryrefslogtreecommitdiffstats
path: root/internal.c
diff options
context:
space:
mode:
authorCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2010-07-06 09:55:48 +0000
committerCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2010-07-06 09:55:48 +0000
commit744132af4b9f629716394f9c22f6add71cc73ef9 (patch)
tree46de6c5dc108fc2868603fdc606e7328a83f1703 /internal.c
parentd1be52d545329debd2128c1aa8685b31dfaa0a0e (diff)
downloadflashrom-744132af4b9f629716394f9c22f6add71cc73ef9.tar.gz
flashrom-744132af4b9f629716394f9c22f6add71cc73ef9.tar.bz2
flashrom-744132af4b9f629716394f9c22f6add71cc73ef9.zip
Various places in the flashrom source feature custom parameter extraction from programmer_param
This led to wildly differing syntax for programmer parameters, and it also voids pretty much every assumption you could make about programmer_param. The latter is a problem for libflashrom. Use extract_param everywhere, clean up related code and make it more foolproof. Add two instances of exit(1) where we have no option to return an error. Remove six instances of exit(1) where returning an error was possible. WARNING: This changes programmer parameter syntax for a few programmers! Corresponding to flashrom svn r1070. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
Diffstat (limited to 'internal.c')
-rw-r--r--internal.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/internal.c b/internal.c
index 823092619..188fd5d63 100644
--- a/internal.c
+++ b/internal.c
@@ -121,36 +121,45 @@ int internal_init(void)
int force_laptop = 0;
char *arg;
- arg = extract_param(&programmer_param, "boardenable=", ",:");
+ arg = extract_param(&programmer_param, "boardenable", ",:");
if (arg && !strcmp(arg,"force")) {
force_boardenable = 1;
} else if (arg && !strlen(arg)) {
msg_perr("Missing argument for boardenable.\n");
+ free(arg);
+ return 1;
} else if (arg) {
msg_perr("Unknown argument for boardenable: %s\n", arg);
- exit(1);
+ free(arg);
+ return 1;
}
free(arg);
- arg = extract_param(&programmer_param, "boardmismatch=", ",:");
+ arg = extract_param(&programmer_param, "boardmismatch", ",:");
if (arg && !strcmp(arg,"force")) {
force_boardmismatch = 1;
} else if (arg && !strlen(arg)) {
msg_perr("Missing argument for boardmismatch.\n");
+ free(arg);
+ return 1;
} else if (arg) {
msg_perr("Unknown argument for boardmismatch: %s\n", arg);
- exit(1);
+ free(arg);
+ return 1;
}
free(arg);
- arg = extract_param(&programmer_param, "laptop=", ",:");
+ arg = extract_param(&programmer_param, "laptop", ",:");
if (arg && !strcmp(arg,"force_I_want_a_brick")) {
force_laptop = 1;
} else if (arg && !strlen(arg)) {
msg_perr("Missing argument for laptop.\n");
+ free(arg);
+ return 1;
} else if (arg) {
msg_perr("Unknown argument for laptop: %s\n", arg);
- exit(1);
+ free(arg);
+ return 1;
}
free(arg);