diff options
author | Jeremy Harris <jgh146exb@wizmail.org> | 2019-07-25 19:41:57 +0100 |
---|---|---|
committer | Jeremy Harris <jgh146exb@wizmail.org> | 2019-07-25 19:41:57 +0100 |
commit | f8d78f744328266ad9f7f48cf5ca8f7d67c227c4 (patch) | |
tree | a7b14abc882290b040af1da4969f306d2a33841a /src | |
parent | 6d5f5cafb4c507abe36434bf7695573284eb8761 (diff) |
De-taint library-return string for inet_ntoa() etc
Diffstat (limited to 'src')
-rw-r--r-- | src/src/host.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/src/host.c b/src/src/host.c index a00d048f6..30d54b481 100644 --- a/src/src/host.c +++ b/src/src/host.c @@ -945,13 +945,15 @@ else /* If there is no buffer, put the string into some new store. */ -if (buffer == NULL) return string_copy(yield); +if (!buffer) buffer = store_get(46, FALSE); /* Callers of this function with a non-NULL buffer must ensure that it is large enough to hold an IPv6 address, namely, at least 46 bytes. That's what -makes this use of strcpy() OK. */ +makes this use of strcpy() OK. +If the library returned apparently an apparently tainted string, clean it; +we trust IP addresses. */ -Ustrcpy(buffer, yield); +string_format_nt(buffer, 46, "%s", yield); return buffer; } |