From: Karel Zak Date: Thu, 30 Jun 2016 12:00:44 +0000 (+0200) Subject: agetty: don't modify argv[] when parse speeds X-Git-Tag: v2.29-rc1~171 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3383b2f5caa92376c0e2762622547617090fb675;p=thirdparty%2Futil-linux.git agetty: don't modify argv[] when parse speeds Signed-off-by: Karel Zak --- diff --git a/term-utils/agetty.c b/term-utils/agetty.c index 090ef91805..f3fc66714c 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