Sophie

Sophie

distrib > Mageia > 5 > i586 > by-pkgid > c704050373f4931bfe9f13357b0ade5c > files > 2

edid-decode-0-0.20140129.1.mga5.src.rpm

diff --git a/edid-decode.c b/edid-decode.c
index 9840db6..04da3d3 100644
--- a/edid-decode.c
+++ b/edid-decode.c
@@ -145,21 +145,24 @@ extract_string(unsigned char *x, int *valid_termination, int len)
     memset(ret, 0, sizeof(ret));
 
     for (i = 0; i < len; i++) {
-	if (isalnum(x[i])) {
-	    ret[i] = x[i];
-	} else if (!seen_newline) {
-	    if (x[i] == 0x0a) {
-		seen_newline = 1;
-	    } else {
-		*valid_termination = 0;
-		return ret;
-	    }
-	} else {
+	if (seen_newline) {
 	    if (x[i] != 0x20) {
 		*valid_termination = 0;
 		return ret;
 	    }
 	}
+	else {
+	    if (x[i] == 0x0a) {
+		seen_newline = 1;
+	    } else {
+		if (((x[i] & 0x80) == 0) && isprint(x[i])) {
+		    ret[i] = x[i];
+		} else {
+		    *valid_termination = 0;
+		    return ret;
+		}
+	    }
+	}
     }
 
     return ret;