Explorar o código

fdt: Identify scripts in ITBs as printable strings

Scripts in the ITB format will have spaces in them and will end in a
newline charachter.  Make sure that these are considered printable.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Joe Hershberger %!s(int64=12) %!d(string=hai) anos
pai
achega
8805beec8f
Modificáronse 1 ficheiros con 3 adicións e 3 borrados
  1. 3 3
      common/cmd_fdt.c

+ 3 - 3
common/cmd_fdt.c

@@ -754,12 +754,12 @@ static int is_printable_string(const void *data, int len)
 	if (len == 0)
 		return 0;
 
-	/* must terminate with zero */
-	if (s[len - 1] != '\0')
+	/* must terminate with zero or '\n' */
+	if (s[len - 1] != '\0' && s[len - 1] != '\n')
 		return 0;
 
 	/* printable or a null byte (concatenated strings) */
-	while (((*s == '\0') || isprint(*s)) && (len > 0)) {
+	while (((*s == '\0') || isprint(*s) || isspace(*s)) && (len > 0)) {
 		/*
 		 * If we see a null, there are three possibilities:
 		 * 1) If len == 1, it is the end of the string, printable