agetty: don't modify argv[] when parse speeds

Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2016-06-30 14:00:44 +02:00
parent ac681a310c
commit 3383b2f5ca
1 changed files with 7 additions and 2 deletions

View File

@ -868,15 +868,20 @@ static void parse_args(int argc, char **argv, struct options *op)
static void parse_speeds(struct options *op, char *arg)
{
char *cp;
char *str = strdup(arg);
debug("entered parse_speeds\n");
for (cp = strtok(arg, ","); cp != NULL; cp = strtok((char *)0, ",")) {
if (!str)
log_err(_("failed to allocate memory: %m"));
debug("entered parse_speeds:\n");
for (cp = strtok(str, ","); cp != NULL; cp = strtok((char *)0, ",")) {
if ((op->speeds[op->numspeed++] = bcode(cp)) <= 0)
log_err(_("bad speed: %s"), cp);
if (op->numspeed >= MAX_SPEED)
log_err(_("too many alternate speeds"));
}
debug("exiting parsespeeds\n");
free(str);
}
#ifdef SYSV_STYLE