From 2c8a304b4017c04d964809f3211e083f13a9c706 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Thu, 30 Jun 2016 14:00:44 +0200 Subject: [PATCH] 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(-) diff --git a/term-utils/agetty.c b/term-utils/agetty.c index 6d610c6089..8f20508720 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 -- 2.47.3