diff options
| author | Dag-Erling Smørgrav <des@FreeBSD.org> | 2026-02-24 14:23:39 +0000 |
|---|---|---|
| committer | Dag-Erling Smørgrav <des@FreeBSD.org> | 2026-02-24 14:25:57 +0000 |
| commit | 6c4777c59325c2cfefcce0c466b3bf475404a550 (patch) | |
| tree | 5713dfc9cc8c3342d11ef548efb443ca8de43ea9 | |
| parent | b7ef4f4b230f01968473269f280bd7e4e86a3ec9 (diff) | |
ngctl: Fix getline loop
I misremembered when I wrote this code: getline() returns -1 on EOF, not
zero, so the loop condition and the error check are both incorrect
(though in practice getline() will never return 0).
MFC after: 3 days
Fixes: 3cbdcabf714d ("ngctl: Modernize code somewhat")
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D55487
| -rw-r--r-- | usr.sbin/ngctl/main.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/usr.sbin/ngctl/main.c b/usr.sbin/ngctl/main.c index b58de1e042b3..2b711fd4155a 100644 --- a/usr.sbin/ngctl/main.c +++ b/usr.sbin/ngctl/main.c @@ -243,7 +243,7 @@ ReadFile(FILE *fp) unsigned int lineno = 0; int rtn = CMDRTN_OK; - while ((len = getline(&line, &sz, fp)) > 0) { + while ((len = getline(&line, &sz, fp)) >= 0) { lineno++; if (*line == '#') continue; @@ -252,7 +252,7 @@ ReadFile(FILE *fp) break; } } - if (len < 0) + if (ferror(fp)) rtn = CMDRTN_ERROR; free(line); return (rtn); |
