Mirror of DTC
Find a file
David Gibson b43345039b Fix some bugs in processing of line directives
In order to work with preprocessed dts files more easily, dts will parse
line number information in the form emitted by cpp.

Anton Blanchard (using a fuzzer) reported that including a line number
directive with a nul character (a literal nul in the input file, not a \0
sequence) would cause dtc to SEGV.  I spotted several more problems on
examining the code:
    * It modified yytext in place which seems to work, but is ugly and I'm
      not sure if it's safe on all lex/flex versions
    * The regexp used in the lexer to recognize line number information
      accepts strings with escape characters, but it won't process these
      escapes.
        - GNU cpp at least, will generate \ escapes in line number
          information, at least with files containing " or \ in the name

This patch reworks the handling of line number information to address
these problems.  \ escapes should now be handled directly.  nuls in file
names (either with a literal nul in the input file, or with a \0 escape
sequence) are still not permitted, but will now result in a lexical error
rather than a SEGV.

Reported-by: Anton Blanchard <anton@samba.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2016-01-04 22:56:39 +11:00
Documentation Update source code location for dtc in manual.txt 2014-03-03 10:51:24 +11:00
libfdt libfdt: Fix undefined behaviour in fdt_offset_ptr() 2015-12-17 17:19:11 +11:00
scripts dtc: Add maintainer script for signing and upload to kernel.org 2014-11-12 14:27:02 +11:00
tests Fix some bugs in processing of line directives 2016-01-04 22:56:39 +11:00
.gitignore .gitignore: Add rule for *.patch 2013-01-27 14:21:44 -06:00
.travis.yml Add simple .travis.yml 2015-07-02 12:36:12 +10:00
checks.c Fix crash with poorly defined #size-cells 2015-04-30 10:55:41 +10:00
convert-dtsv0-lexer.l dtc: Delete the unused start condition INCLUDE 2014-09-26 12:14:49 +10:00
data.c Properly handle embedded nul delimited string lists 2014-08-08 19:17:31 +10:00
dtc-lexer.l Fix some bugs in processing of line directives 2016-01-04 22:56:39 +11:00
dtc-parser.y Prevent crash on division by zero 2016-01-03 22:27:32 +11:00
dtc.c guess output file format 2015-07-01 13:34:11 +10:00
dtc.h Work around MSVC limitations 2014-06-19 21:12:38 +10:00
dtdiff dtc: Add code to make diffing trees easier 2010-11-13 15:47:29 -06:00
fdtdump.c Improve portability 2014-10-24 11:45:41 +02:00
fdtget.c util: drop "long" from usage helpers 2013-05-24 18:20:53 +10:00
fdtput.c fdtput: add delete node and property function 2015-01-27 19:30:19 +11:00
flattree.c Use stdbool more widely 2013-10-28 21:06:53 +11:00
fstree.c Open binary files in binary mode 2014-06-19 21:12:31 +10:00
GPL dtc: Remove redundant copy of the GPL 2007-06-25 21:43:11 -05:00
livetree.c Fix bug with references to root node 2014-05-09 20:48:49 +10:00
Makefile Remove duplicated -Werror in dtc Makefile 2015-11-16 23:45:36 +11:00
Makefile.convert-dtsv0 Implement and use an xstrdup() function 2008-10-03 11:12:33 -05:00
Makefile.dtc Implement and use an xstrdup() function 2008-10-03 11:12:33 -05:00
Makefile.utils Add fdtput utility to write property values to a device tree 2012-01-21 15:08:39 -06:00
README Add a README file for dtc and libfdt 2014-02-12 11:33:42 +11:00
README.license dtc/libfdt: Add README clarifying licensing 2008-01-04 08:37:36 -06:00
srcpos.c Open binary files in binary mode 2014-06-19 21:12:31 +10:00
srcpos.h Make srcpos_{v,}error() more widely useful 2014-01-01 23:27:31 +11:00
TODO dtc: Update TODO files 2007-12-19 08:20:26 -06:00
treesource.c Correct write_propval_bytes() for platforms with signed char by default 2014-06-19 21:05:34 +10:00
util.c Fix crash on nul character in string escape sequence 2016-01-03 23:01:24 +11:00
util.h dtc: Use va_end to match corresponding va_start 2015-01-13 16:28:25 +11:00

The source tree contains the Device Tree Compiler (dtc) toolchain for
working with device tree source and binary files and also libfdt, a
utility library for reading and manipulating the binary format.

DTC and LIBFDT are maintained by:

David Gibson <david@gibson.dropbear.id.au>
Jon Loeliger <jdl@jdl.com>

Mailing list
------------
The following list is for discussion about dtc and libfdt implementation
mailto:devicetree-compiler@vger.kernel.org

Core device tree bindings are discussed on the devicetree-spec list:
mailto:devicetree-spec@vger.kernel.org

Home Page
---------
http://devicetree.org/Device_Tree_Compiler