[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