diff options
author | Conrad Meyer <cem@FreeBSD.org> | 2020-01-18 03:33:44 +0000 |
---|---|---|
committer | Conrad Meyer <cem@FreeBSD.org> | 2020-01-18 03:33:44 +0000 |
commit | 151e04b3fe5d64f0fe0601f4cc8afae01e42b04c (patch) | |
tree | 10a2f6f2b9a69963b359eea84e3cf01c8c11d5e8 | |
parent | de8dd262c43bd9d687060fa7d50b6b6de73249c9 (diff) |
Notes
-rw-r--r-- | sys/geom/label/g_label.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/sys/geom/label/g_label.c b/sys/geom/label/g_label.c index c37ca3511890..13639aedf7b2 100644 --- a/sys/geom/label/g_label.c +++ b/sys/geom/label/g_label.c @@ -179,9 +179,25 @@ g_label_mangle_name(char *label, size_t size) { struct sbuf *sb; const u_char *c; + size_t len, i; + + /* Trim trailing whitespace. */ + len = strlen(label); + for (i = len; i > 0; i--) { + if (isspace(label[i - 1])) + label[i - 1] = '\0'; + else + break; + } + if (*label == '\0') + return; + sb = sbuf_new(NULL, NULL, size, SBUF_FIXEDLEN); for (c = label; *c != '\0'; c++) { + /* Trim leading whitespace. */ + if (isspace(*c) && sbuf_len(sb) == 0) + continue; if (!isprint(*c) || isspace(*c) || *c =='"' || *c == '%') sbuf_printf(sb, "%%%02X", *c); else |