Fix read overflow reported by ASAN
This commit is contained in:
parent
00ea189074
commit
c19906eb87
@ -101,7 +101,10 @@ get_id_for_hyperlink(Screen *screen, const char *id, const char *url) {
|
|||||||
if (!url) return 0;
|
if (!url) return 0;
|
||||||
HyperLinkPool *pool = (HyperLinkPool*)screen->hyperlink_pool;
|
HyperLinkPool *pool = (HyperLinkPool*)screen->hyperlink_pool;
|
||||||
static char key[MAX_KEY_LEN] = {0};
|
static char key[MAX_KEY_LEN] = {0};
|
||||||
size_t keylen = snprintf(key, MAX_KEY_LEN-1, "%.*s:%s", MAX_ID_LEN, id ? id : "", url);
|
int keylen = snprintf(key, MAX_KEY_LEN-1, "%.*s:%s", MAX_ID_LEN, id ? id : "", url);
|
||||||
|
if (keylen < 0) keylen = strlen(key);
|
||||||
|
else keylen = MIN(keylen, MAX_KEY_LEN - 2); // snprintf returns how many chars it would have written in case of truncation
|
||||||
|
key[keylen] = 0;
|
||||||
HyperLinkEntry *s = NULL;
|
HyperLinkEntry *s = NULL;
|
||||||
if (pool->hyperlinks) {
|
if (pool->hyperlinks) {
|
||||||
HASH_FIND_STR(pool->hyperlinks, key, s);
|
HASH_FIND_STR(pool->hyperlinks, key, s);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user