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