[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[PATCH] Fix the taint flag check.



Turns out, the taint flag is really a bitmask so we need to check a specific
bit instead of just checking for a single number.

Related: rhbz#623140
---
 loader/loader.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/loader/loader.c b/loader/loader.c
index 08b8c3c..e54c836 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -1209,6 +1209,7 @@ static void checkForRam(int install_method) {
 }
 
 static void checkTaintFlag(void) {
+    unsigned long l;
     gchar *contents = NULL;
     GError *fileErr = NULL;
 
@@ -1218,7 +1219,15 @@ static void checkTaintFlag(void) {
         return;
     }
 
-    if (g_ascii_strncasecmp(contents, "0", 1)) {
+    errno = 0;
+    l = strtol(contents, NULL, 10);
+    if (errno == EINVAL || errno == ERANGE) {
+        logMessage(ERROR, "%s (%d): %m", __func__, __LINE__);
+        g_free(contents);
+        return;
+    }
+
+    if (l & (1 << 28)) {
         startNewt();
         newtWinMessage(_("Unsupported Hardware Detected"), _("OK"),
                        _("This hardware (or a combination thereof) is not "
-- 
1.7.1.1


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]