From 3383b2f5caa92376c0e2762622547617090fb675 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Thu, 30 Jun 2016 14:00:44 +0200 Subject: agetty: don't modify argv[] when parse speeds Signed-off-by: Karel Zak --- term-utils/agetty.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'term-utils/agetty.c') diff --git a/term-utils/agetty.c b/term-utils/agetty.c index 090ef9180..f3fc66714 100644 --- a/term-utils/agetty.c +++ b/term-utils/agetty.c @@ -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 -- cgit v1.2.3-55-g7522