summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Gerstner <matthias.gerstner@suse.de>2022-10-27 12:32:54 +0200
committerDaniel Wagner <wagi@monom.org>2022-11-03 08:10:31 +0100
commit3324d1ebac527322af25f6e4d4e3232f4ccdd749 (patch)
tree565bba10d80b0c07e8125aa8c43a55b7d45f96bd
parent56f7463284ed22d43af4b2dce53557e3a1bd8c48 (diff)
downloadconnman-3324d1ebac527322af25f6e4d4e3232f4ccdd749.tar.gz
dnsproxy: uncompress: replace unnecessary goto with return statements
-rw-r--r--src/dnsproxy.c21
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;
}
/*