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 () {


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


dtc_tests () { dtc_tests () {

1
util.c

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


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

Loading…
Cancel
Save