diff options
Diffstat (limited to 'util-linux/fbset.c')
-rw-r--r-- | util-linux/fbset.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/util-linux/fbset.c b/util-linux/fbset.c index f67a283c1..d616abd36 100644 --- a/util-linux/fbset.c +++ b/util-linux/fbset.c @@ -181,10 +181,11 @@ static int readmode(struct fb_var_screeninfo *base, const char *fn, f = xfopen(fn, "r"); while (!feof(f)) { fgets(buf, sizeof(buf), f); - if (!(p = strstr(buf, "mode ")) && !(p = strstr(buf, "mode\t"))) + p = strstr(buf, "mode "); + if (!p && !(p = strstr(buf, "mode\t"))) continue; - p += 5; - if (!(p = strstr(buf, mode))) + p = strstr(p + 5, mode); + if (!p) continue; p += strlen(mode); if (!isspace(*p) && (*p != 0) && (*p != '"') @@ -193,7 +194,8 @@ static int readmode(struct fb_var_screeninfo *base, const char *fn, while (!feof(f)) { fgets(buf, sizeof(buf), f); - if ((p = strstr(buf, "geometry "))) { + p = strstr(buf, "geometry "); + if (p) { p += 9; /* FIXME: catastrophic on arches with 64bit ints */ sscanf(p, "%d %d %d %d %d", |