Browse Source

Fix crash on nul character in string escape sequence

If a dts file contains a string with \ followed by a nul byte - an actual
nul in the input file, not the \\0 escape - then the assert() in
get_escape_char() will trip, crashing dtc.

As far as I can tell, there isn't any valid need for this assert(), so just
remove it.

Reported-by: Anton Blanchard <anton@samba.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
main
David Gibson 9 years ago
parent
commit
d728ad59f5
  1. BIN
      tests/nul-in-escape.dts
  2. 1
      tests/run_tests.sh
  3. 1
      util.c

BIN
tests/nul-in-escape.dts

Binary file not shown.

1
tests/run_tests.sh

@ -292,6 +292,7 @@ libfdt_tests () { @@ -292,6 +292,7 @@ libfdt_tests () {

run_wrap_error_test $DTC division-by-zero.dts
run_wrap_error_test $DTC bad-octal-literal.dts
run_dtc_test -I dts -O dtb nul-in-escape.dts
}

dtc_tests () {

1
util.c

@ -152,7 +152,6 @@ char get_escape_char(const char *s, int *i) @@ -152,7 +152,6 @@ char get_escape_char(const char *s, int *i)
int j = *i + 1;
char val;

assert(c);
switch (c) {
case 'a':
val = '\a';

Loading…
Cancel
Save