From: Karel Zak Date: Thu, 5 Oct 2017 09:07:41 +0000 (+0200) Subject: agetty: fix /etc/os-release parsing X-Git-Tag: v2.31~31 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=949e83997906ab8dd8442f28d74c34bb5a2395ee;p=thirdparty%2Futil-linux.git agetty: fix /etc/os-release parsing For example /etc/os-release: VERSION="26 (Twenty Six)" VERSION_ID=26 agetty for \S{VERSION} returns _ID=26 because the parser does nor check for '=' after variable name. Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1498462 Signed-off-by: Karel Zak --- diff --git a/term-utils/agetty.c b/term-utils/agetty.c index 956e8af97e..ee66a39481 100644 --- a/term-utils/agetty.c +++ b/term-utils/agetty.c @@ -1438,6 +1438,7 @@ static char *xgetdomainname(void) #endif } + static char *read_os_release(struct options *op, const char *varname) { int fd = -1; @@ -1490,6 +1491,11 @@ static char *read_os_release(struct options *op, const char *varname) continue; } p += varsz; + p += strspn(p, " \t\n\r"); + + if (*p != '=') + continue; + p += strspn(p, " \t\n\r=\""); eol = p + strcspn(p, "\n\r"); *eol = '\0';