On Mo, 15.01.18 18:44, Olaf Hering (o...@aepfle.de) wrote:

> I submitted a correct and tested patch via
> https://github.com/systemd/systemd/pull/7581, which was using
> sscanf("0028f0", "%x",&val). During discussion I was soft-forced to
> use systemd helper functions. These (strtoull based) helpers expect
> "0x...", which sysfs does not provide. As a result 575e658 is
> broken. My fault, I did not doublecheck the updated submission...
> 
> So, how is one supposed to handle untagged hexvalues? Invent a new
> helper, or prepend "0x" if missing, or just use sscanf?

We have very few cases of that so far, hence there is no
helper. Adding a helper is probably worth it if there are multiple
users and until then sscanf() is fine, as long as it is done safely
with all parsing error caught.

We have the safe_atou() and friends mostly because parsing things in C
with strtoul() is really nasty if you want to catch all errors
properly. libc strtoul() is not precisely an easy-to-use API.

Lennart

-- 
Lennart Poettering, Red Hat
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to