summaryrefslogtreecommitdiffstats
path: root/term-utils/agetty.c
diff options
context:
space:
mode:
authorKarel Zak2016-06-30 14:00:44 +0200
committerKarel Zak2016-06-30 14:00:44 +0200
commit3383b2f5caa92376c0e2762622547617090fb675 (patch)
tree4532bd381bed97e21f7c935fb3ee54d03a3a3062 /term-utils/agetty.c
parentliblkid: Add length check in probe_nilfs2 before crc32 (diff)
downloadkernel-qcow2-util-linux-3383b2f5caa92376c0e2762622547617090fb675.tar.gz
kernel-qcow2-util-linux-3383b2f5caa92376c0e2762622547617090fb675.tar.xz
kernel-qcow2-util-linux-3383b2f5caa92376c0e2762622547617090fb675.zip
agetty: don't modify argv[] when parse speeds
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'term-utils/agetty.c')
-rw-r--r--term-utils/agetty.c9
1 files changed, 7 insertions, 2 deletions
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