diff options
author | David Robillard <d@drobilla.net> | 2018-10-20 11:30:48 +0200 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2018-10-28 14:21:14 +0100 |
commit | dfacddf8e61869ff9a9bce2b5c6911edb2312d3f (patch) | |
tree | 5cd2fa5521d21321a77ddb0ff3aed13297c3914a | |
parent | dfe929e21a47f1f5bb6fec3f57180fe8b860ecd2 (diff) | |
download | serd-dfacddf8e61869ff9a9bce2b5c6911edb2312d3f.tar.gz serd-dfacddf8e61869ff9a9bce2b5c6911edb2312d3f.tar.bz2 serd-dfacddf8e61869ff9a9bce2b5c6911edb2312d3f.zip |
Avoid use of sscanf for parsing escapes in URIs
-rw-r--r-- | src/uri.c | 6 |
1 files changed, 2 insertions, 4 deletions
@@ -77,10 +77,8 @@ serd_file_uri_parse(const uint8_t* uri, uint8_t** hostname) serd_chunk_sink("%", 1, &chunk); ++s; } else if (is_hexdig(*(s + 1)) && is_hexdig(*(s + 2))) { - const uint8_t code[3] = { *(s + 1), *(s + 2), 0 }; - uint32_t num; - sscanf((const char*)code, "%X", &num); - const uint8_t c = num; + const uint8_t code[3] = {*(s + 1), *(s + 2), 0}; + const uint8_t c = (uint8_t)strtoul((const char*)code, NULL, 16); serd_chunk_sink(&c, 1, &chunk); s += 2; } else { |