On Thu, Jul 16, 2015 at 01:10:18PM +0200, Thierry Reding wrote:
> From: Thierry Reding <tred...@nvidia.com>
> 
> These three patches add a couple of string functions that have proven
> useful in U-Boot's copy of libfdt, so they are likely to be useful for
> other users as well.
> 
> Patch 1 adds a function to count the number of strings in a property's
> value. This also adds a new DTS sample along with a small test program
> to validate the implemented functions.
> 
> Patch 2 adds a function to retrieve the index of a given string in any
> given property's value. This adds code to the test program introduced in
> the previous patch to exercise the new functionality.
> 
> Patch 3 adds a function to retrieve a string by index from a property's
> value along with a shortcut for index 0. This extends the test program
> introduced in patch 1 to validate the new functionality.
> 
> Changes in v2:
> - Safely handle non-NUL-terminated values. Uses strnlen() instead of
>   strlen() to restrict accesses to the property value.
> - Return FDT_ERR_BADVALUE if a non-NUL-terminated value is detected.
>   Note that for performance reasons this doesn't always work. Cell or
>   byte properties can look very much like NUL-terminated strings. The
>   fdt_find_string() and fdt_get_string_index() functions can return a
>   valid index or string, respectively, because they don't look at the
>   complete value to determine validity. This could of course be fixed
>   but the cases in which this succeeds the user did ask for trouble,
>   so I didn't think it worth the extra effort.
> - Improve documentation and tests.

Sorry, it looks like these fell off my radar for ages.

They look pretty good, but there are a few details I'm unhappy with.

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson

Attachment: pgpaoS7ZCff9X.pgp
Description: PGP signature

Reply via email to