Commit graph

7 commits

Author SHA1 Message Date
David Gibson
9825f823eb libfdt: Fix bounds-checking bug in fdt_get_property()
The libfdt functions are supposed to behave tolerably well when practical,
even if given a corrupted device tree as input.  A silly mistake in
fdt_get_property() means we're bounds checking against the size of a pointer
instead of the size of a property header, meaning we can get bogus
behaviour in a corrupted device tree where the structure block ends in
what's supposed to be the middle of a property.

This patch corrects the problem (fdt_get_property() will now return
BADSTRUCTURE in this case), and also adds a testcase to catch the bug.
2006-12-14 15:29:25 +11:00
David Gibson
94993f4fc4 libfdt: Abolish fdt_property_offset()
fdt_property_offset() is the only function in the library returning a
direct offset to a property, and no function takes such an offset
(they only take offsets to nodes, not properties).  Furthermore the
only client uses for this function I can think of involve immediately
translating the offset into a pointer, effectively duplicating the
internal function _fdt_getprop()

This function abolishes fdt_property_offset(), replacing it with
fdt_get_property(), a renamed and now externally visible version of
_fdt_getprop().
2006-12-11 16:15:34 +11:00
David Gibson
7ba551f966 libfdt: Read-write support
This patch adds support for random access, read-write support on flat trees.
2006-12-01 16:59:43 +11:00
David Gibson
423697628a libfdt: Implement fdt_move()
Implement the fdt_move() function for copying/moving device trees
to a new buffer, or within an existing buffer.
2006-12-01 15:07:19 +11:00
David Gibson
063693a9e4 libfdt: Sequential write support
This patch adds code to libfdt to create flat trees from scratch, writing
sequentially.
2006-11-29 16:45:46 +11:00
David Gibson
4e6221c171 Have tests read example tree from a generated file, rather than link it in.
This makes the tests more flexible to re-use for testing the output from
the write tests.
2006-11-28 17:20:01 +11:00
David Gibson
3da0f9a10d libfdt - library for manipulating device trees in flattened format
Initial revision, read-only and "in-place" (no memmove() required)
write operations only.
2006-11-27 16:21:28 +11:00