mirror of
https://github.com/iustin/mt-st.git
synced 2026-01-03 10:55:15 +00:00
stinit: check that tape index values are fully correct
Right now stinit ignores leftover chars in strings such as '9a'; let's make sure we don't miss these (at least the warning message might give a hint)..
This commit is contained in:
13
stinit.c
13
stinit.c
@@ -860,6 +860,7 @@ int main(int argc, char **argv)
|
||||
int argn;
|
||||
int tapeno, parse_only = FALSE;
|
||||
char *dbname = NULL;
|
||||
char *convp;
|
||||
devdef_tr defs;
|
||||
|
||||
defs.do_rewind = FALSE;
|
||||
@@ -901,9 +902,15 @@ int main(int argc, char **argv)
|
||||
if (*argv[argn] == '-') {
|
||||
usage(1);
|
||||
return 1; /* Never executed but makes gcc happy */
|
||||
} else if (isdigit(*argv[argn]))
|
||||
tapeno = strtol(argv[argn], NULL, 0);
|
||||
else if ((tapeno = tapenum(argv[argn])) < 0) {
|
||||
} else if (isdigit(*argv[argn])) {
|
||||
tapeno = strtol(argv[argn], &convp, 0);
|
||||
if (*argv[argn] != '\0' && *convp != '\0') {
|
||||
fprintf(stderr, "Invalid tape device index '%s': don't "
|
||||
"know how to parse '%s'\n",
|
||||
argv[argn], convp);
|
||||
continue;
|
||||
}
|
||||
} else if ((tapeno = tapenum(argv[argn])) < 0) {
|
||||
fprintf(stderr, "Can't find tape number for name '%s'.\n", argv[argn]);
|
||||
continue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user