[U-Boot] [PATCH v3 1/3] lib: add uuid_str_to_bin for use with bootp and PXE uuid

Wolfgang Denk wd at denx.de
Mon Jul 25 23:37:34 CEST 2011


Dear "Jason Hobbs",

In message <1309366710-17400-2-git-send-email-jason.hobbs at calxeda.com> you wrote:
> Signed-off-by: Jason Hobbs <jason.hobbs at calxeda.com>
...
> +void uuid_str_to_bin(const char *uuid, unsigned char *out)
> +{
> +	uint16_t tmp16;
> +	uint32_t tmp32;
> +	uint64_t tmp64;
> +
> +	if (!uuid || !out)
> +		return;
> +
> +	tmp32 = cpu_to_le32(simple_strtoul(uuid, NULL, 16));
> +	memcpy(out, &tmp32, 4);
> +
> +	tmp16 = cpu_to_le16(simple_strtoul(uuid + 9, NULL, 16));
> +	memcpy(out + 4, &tmp16, 2);
> +
> +	tmp16 = cpu_to_le16(simple_strtoul(uuid + 14, NULL, 16));
> +	memcpy(out + 6, &tmp16, 2);
> +
> +	tmp16 = cpu_to_be16(simple_strtoul(uuid + 19, NULL, 16));
> +	memcpy(out + 8, &tmp16, 2);
> +
> +	tmp64 = cpu_to_be64(simple_strtoull(uuid + 24, NULL, 16));
> +	memcpy(out + 10, (char *)&tmp64 + 2, 6);
> +}

I asked this before, and I repeat my question: Should we not add at
least basic error checking?  Like verifying that the input string is
actually long enough for what we are doing here?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
1st Old Man:  Gee, its windy today.
2nd Old Man:  No it's not... it's Thursday.
3rd Old Man:  Yeh, me too.  Let's go for a beer.


More information about the U-Boot mailing list