diff options
author | Matthias Gerstner <matthias.gerstner@suse.de> | 2022-10-27 12:32:54 +0200 |
---|---|---|
committer | Daniel Wagner <wagi@monom.org> | 2022-11-03 08:10:31 +0100 |
commit | 3324d1ebac527322af25f6e4d4e3232f4ccdd749 (patch) | |
tree | 565bba10d80b0c07e8125aa8c43a55b7d45f96bd | |
parent | 56f7463284ed22d43af4b2dce53557e3a1bd8c48 (diff) | |
download | connman-3324d1ebac527322af25f6e4d4e3232f4ccdd749.tar.gz |
dnsproxy: uncompress: replace unnecessary goto with return statements
-rw-r--r-- | src/dnsproxy.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/dnsproxy.c b/src/dnsproxy.c index 3f31bfb4..4524d216 100644 --- a/src/dnsproxy.c +++ b/src/dnsproxy.c @@ -1781,7 +1781,7 @@ static const char* uncompress(int16_t field_count, const char *start, const char if (!convert_label(start, end, ptr, name, NS_MAXLABEL, &pos, &comp_pos)) - goto out; + return NULL; /* * Copy the uncompressed resource record, type, class and \0 to @@ -1790,7 +1790,7 @@ static const char* uncompress(int16_t field_count, const char *start, const char ulen = strlen(name) + 1; if ((uptr + ulen) > uncomp_end) - goto out; + return NULL; memcpy(uptr, name, ulen); debug("pos %d ulen %d left %d name %s", pos, ulen, @@ -1806,7 +1806,7 @@ static const char* uncompress(int16_t field_count, const char *start, const char */ if ((uptr + NS_RRFIXEDSZ) > uncomp_end) { debug("uncompressed data too large for buffer"); - goto out; + return NULL; } memcpy(uptr, ptr, NS_RRFIXEDSZ); @@ -1814,7 +1814,7 @@ static const char* uncompress(int16_t field_count, const char *start, const char dns_class = uptr[2] << 8 | uptr[3]; if (dns_class != DNS_CLASS_IN) - goto out; + return NULL; ptr += NS_RRFIXEDSZ; uptr += NS_RRFIXEDSZ; @@ -1828,7 +1828,7 @@ static const char* uncompress(int16_t field_count, const char *start, const char if (!convert_label(start, end, ptr, uptr, uncomp_len - (uptr - uncompressed), &pos, &comp_pos)) - goto out; + return NULL; uptr[-2] = comp_pos << 8; uptr[-1] = comp_pos & 0xff; @@ -1841,7 +1841,7 @@ static const char* uncompress(int16_t field_count, const char *start, const char if ((ptr + dlen) > end || (uptr + dlen) > uncomp_end) { debug("data len %d too long", dlen); - goto out; + return NULL; } memcpy(uptr, ptr, dlen); @@ -1856,7 +1856,7 @@ static const char* uncompress(int16_t field_count, const char *start, const char if (!convert_label(start, end, ptr, uptr, uncomp_len - (uptr - uncompressed), &pos, &comp_pos)) - goto out; + return NULL; total_len += comp_pos; len_ptr = &uptr[-2]; @@ -1867,7 +1867,7 @@ static const char* uncompress(int16_t field_count, const char *start, const char if (!convert_label(start, end, ptr, uptr, uncomp_len - (uptr - uncompressed), &pos, &comp_pos)) - goto out; + return NULL; total_len += comp_pos; ptr += pos; @@ -1880,7 +1880,7 @@ static const char* uncompress(int16_t field_count, const char *start, const char */ if ((uptr + 20) > uncomp_end || (ptr + 20) > end) { debug("soa record too long"); - goto out; + return NULL; } memcpy(uptr, ptr, 20); uptr += 20; @@ -1898,9 +1898,6 @@ static const char* uncompress(int16_t field_count, const char *start, const char } return ptr; - -out: - return NULL; } /* |