From 949e83997906ab8dd8442f28d74c34bb5a2395ee Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Thu, 5 Oct 2017 11:07:41 +0200 Subject: 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 --- term-utils/agetty.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'term-utils') diff --git a/term-utils/agetty.c b/term-utils/agetty.c index 956e8af97..ee66a3948 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'; -- cgit v1.2.3-55-g7522