summaryrefslogtreecommitdiffstats
path: root/disk-utils
diff options
context:
space:
mode:
authorVaclav Dolezal2017-08-28 13:20:34 +0200
committerVaclav Dolezal2017-08-28 14:06:15 +0200
commit1d775aa260bdc20c2e8e618691eabb193d496e05 (patch)
treef9b74d2362594dd65be3f564590548b80159cd23 /disk-utils
parentfdisk: minor fixes to make readline work (diff)
downloadkernel-qcow2-util-linux-1d775aa260bdc20c2e8e618691eabb193d496e05.tar.gz
kernel-qcow2-util-linux-1d775aa260bdc20c2e8e618691eabb193d496e05.tar.xz
kernel-qcow2-util-linux-1d775aa260bdc20c2e8e618691eabb193d496e05.zip
fdisk: fix copy from readline and whitespace stripping
Bug fixed: --- 678: fdisk: ASK: asking for number ['Partition number', <1,4>, default=1, range: 1-4] 678: fdisk: ASK: asking for user replay [interactive] Partition number (1-4, default 1): 12345 678: fdisk: ASK: user's reply: >>>12345<<< Value out of range. 678: fdisk: ASK: asking for user replay [interactive] Partition number (1-4, default 1): 1 678: fdisk: ASK: user's reply: >>>12345<<< Value out of range. 678: fdisk: ASK: asking for user replay [interactive] Partition number (1-4, default 1): 678: fdisk: ASK: user's reply: >>>22345<<< Value out of range. --- Signed-off-by: Vaclav Dolezal <vdolezal@redhat.com>
Diffstat (limited to 'disk-utils')
-rw-r--r--disk-utils/fdisk.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/disk-utils/fdisk.c b/disk-utils/fdisk.c
index 261d884be..be8f00edc 100644
--- a/disk-utils/fdisk.c
+++ b/disk-utils/fdisk.c
@@ -140,10 +140,10 @@ int get_user_reply(const char *prompt, char *buf, size_t bufsz)
if (!reply_running && reply_line) {
sz = strlen(reply_line);
if (sz == 0)
- buf[0] = '\n';
+ buf[sz++] = '\n';
else
memcpy(buf, reply_line, min(sz, bufsz));
- buf[bufsz - 1] = '\0';
+ buf[min(sz, bufsz - 1)] = '\0';
free(reply_line);
reply_line = NULL;
}
@@ -168,7 +168,7 @@ int get_user_reply(const char *prompt, char *buf, size_t bufsz)
for (p = buf; *p && !isgraph(*p); p++); /* get first non-blank */
if (p > buf)
- memmove(buf, p, p - buf); /* remove blank space */
+ memmove(buf, p, strlen(p) + 1); /* remove blank space */
sz = strlen(buf);
if (sz && *(buf + sz - 1) == '\n')
*(buf + sz - 1) = '\0';